You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js调用API拉取数据时触发products未定义引用错误

报错根因

代码存在3处问题直接触发引用错误:

  • getStaticProps方法中,接口响应解析后赋值给了data变量,但返回props时错误引用了未定义的products变量
  • 页面组件ProductList没有接收getStaticProps注入的props,组件作用域内不存在products变量
  • 代码中使用了Chakra UI的Text组件,但顶部导入语句未引入该组件,修复前两个问题后会触发新的组件未定义错误;另外列表循环渲染未绑定唯一key属性,会触发React渲染警告。
修复后可运行代码
import { Box, Text } from "@chakra-ui/react";

export async function getStaticProps() {
  const response = await fetch("https://fakestoreapi.com/products");
  const products = await response.json();

  return {
    props: {
      products,
    },
  };
}

function ProductList({ products }) {
  return (
    <Box>
      {products.map((product) => (
        <Box key={product.id}>
          <Text>{product.title}</Text>
        </Box>
      ))}
    </Box>
  );
}

export default ProductList;

注意:getStaticProps仅在Next.js的Pages Router模式下生效,如果你用的是App Router,需要换用服务端组件直接拉取数据的写法,上述修复代码针对Pages Router场景。

内容的提问来源于stack exchange,提问作者Stephen Murya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:39:42