首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行上下文不会像往常一样从getStaticPaths移动到getStaticProps

执行上下文不会像往常一样从getStaticPaths移动到getStaticProps
EN

Stack Overflow用户
提问于 2021-05-02 16:59:27
回答 1查看 122关注 0票数 1

我正在尝试从动态路由获取数据。我在pages/science- and -engineering/field.js中,像往常一样使用getStaticPath和getStaticProps,但由于某些原因,getStaticProps从未执行过,组件也从未呈现过。只有getStaticPath被执行了,所有的东西都运行得很好,然后它就停止了。

代码语言:javascript
复制
export const getStaticPaths = async () => {
       const results = await fetch('randomapi');
       const fields = await results.json();
       const paths = fields.map(field => ( { params: { field: field.name } } ) );
       console.log(paths) // EVERYTHING IS FINE HERE
       return { paths, fallback: false }
   }

export const getStaticProps = async ({params}) => {

    // NOTHING IN HERE GETS CALLED

    console.log('context: ', context)
    console.log('yo')
    const res = await fetch(`http://localhost:8080/api/v1/fields/computer-science`)
    const field = await res.json()
    console.log('field: ', field)
    return { props: {field: field} }

  
}

const Details = ({ field }) => {
    // NOTHING IN HERE GETS CALLED
    // render component blabla
}
export default Details;

最后是404页。我几乎不知道发生了什么,因为我在其他文件中做了完全相同的事情,没有问题。我在网上发现0个人有同样的问题。

基本上,问题是,为什么执行上下文不像往常那样从getStaticPaths移动到getStaticProps?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-02 18:35:21

paths中返回的参数必须与动态路由路径pages/posts/[name]匹配。您需要用name替换field

代码语言:javascript
复制
const paths = fields.map(field => ( { params: { name: field.name } } ) );

此外,还要确保在paths数组中正确生成了所有预期的路径,包括computer-science

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67354552

复制
相关文章

相似问题

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