我在博客项目中使用Strapi和Next.js
我正在尝试使用id.js在页面/posts/id.js中创建动态页面
但是,问题是当我试图在getStaticPaths()中通过Strapi的API映射时,它给了我一个没有定义data.map的错误
注意:-我使用的是NextJS V12.0.8和StrapiV4.0.4
下面是我的代码
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
发布于 2022-07-08 22:11:36
显然,您需要设置一个上下文来在该函数中使用axios,或者您可以尝试将axios响应格式化为json.stringfy,然后在其中使用json.parse。或者直接用“取”。
如果您使用的是下一个api文件夹,这里不要调用fetch或axios,只需使查询就像在节点中一样
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
}
}
https://stackoverflow.com/questions/70810331
复制相似问题