res.json 不是函数 - Next.js

问题描述

Next.js 文档有些模棱两可,对我的问题没有帮助——我在使用 getStaticPaths 函数时遇到了问题。以下是我的代码

export async function getStaticPaths() {
    
    let res =  fetch("localhost:3000/api/main")
    const paths = res.json().map(state => ({
      params: {id: states.id},}))

    return {paths,fallback: false}
  }

是否有任何关于为什么这不起作用的想法?我还有一个 getStaticProps 函数,它可以正确加载 res.json()

解决方法

你应该这样做:

  export async function getStaticPaths() {
    const res =  await fetch("http://localhost:3000/api/main")
    const decoded = await res.json();
    const paths = decoded.map(state => ({
      params: {state: states.id},}));
    return {
      paths,fallback: false
    }
  }