reactjs TypeError:无法读取NextJS - getStaticPaths中未定义(阅读“map”)的属性

z9ju0rcb  于 2022-11-04  发布在  React
关注(0)|答案(1)|浏览(205)

我在接下来的13中遇到了动态路由问题,我有动态页面[id].js,正在尝试获取数据

const res = await fetch(`myAPI`);
 const resData  = await res.json();

 const paths = resData.data.map((r) => ({
      params: { id: r.id}
 }));

 return {
     paths,
     fallback: false
 }

它不工作,并给我错误的.map函数,如果我硬编码的路径,它的工作没有任何问题,并给我正确的输出数据
硬编码示例:

paths: [
    {params: { id: '67'}}
  ],

在组件内部进行测试时,我知道我的map函数应该是正确的

axios
  .get(`myAPI`)
  .then((response) => {
    console.log(response.data.map((res) => {return(res.id)}))
  })

组件中控制台输出返回数据没有抱怨,为什么我不能在getStaticPath中实现?

rt4zxlrg

rt4zxlrg1#

resData已经是您的对象数组,因此您可以“跳过”data

const res = await fetch(`myAPI`);
const resData  = await res.json();

const paths = resData.map((r) => ({
     params: { id: r.id}
}));

使用Axios时必须使用data的原因是Axios已经为您获取了JSON格式的响应数据(data)。您将Axios的responseresData混淆了。

相关问题