首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getStaticPaths - data.map不是一个函数。

getStaticPaths - data.map不是一个函数。
EN

Stack Overflow用户
提问于 2022-01-22 05:47:03
回答 1查看 820关注 0票数 1

我在博客项目中使用Strapi和Next.js

我正在尝试使用id.js在页面/posts/id.js中创建动态页面

但是,问题是当我试图在getStaticPaths()中通过Strapi的API映射时,它给了我一个没有定义data.map的错误

注意:-我使用的是NextJS V12.0.8和StrapiV4.0.4

下面是我的代码

代码语言:javascript
运行
复制
export async function getStaticPaths() {
  const postsRes = await axios.get("http://localhost:1337/api/posts?populate=image");
 
  const paths = postsRes.map((post) => {
    return { params: {id: post.id.toString()} }
  });

  // const paths = { params: {id: '1' } }
    
  return {
    paths,
    fallback: false
 
  }
 
}

完整的[id].js页面代码链接- https://pastebin.com/SnzLirys

错误屏幕截图- https://prnt.sc/26ha6z5

EN

回答 1

Stack Overflow用户

发布于 2022-07-08 22:11:36

显然,您需要设置一个上下文来在该函数中使用axios,或者您可以尝试将axios响应格式化为json.stringfy,然后在其中使用json.parse。或者直接用“取”。

如果您使用的是下一个api文件夹,这里不要调用fetch或axios,只需使查询就像在节点中一样

代码语言:javascript
运行
复制
export async function getStaticPaths() {
      const get = await fetch("url")
      const data = await get.json()
      
      data.map(item => console.log(item))
     
      const paths = data.map((post) => {
        return { params: {id: post.id.toString()} }
      });
    
      // const paths = { params: {id: '1' } }
        
      return {
        paths,
        fallback: false
     
      }
     
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70810331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档