Javascript res.json不是函数-Next.js

Javascript res.json不是函数-Next.js,javascript,next.js,Javascript,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},

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
    }
  }

嘿,把http也放进去:
http://localhost:3000/api/main
,您应该等待获取:
const res=await fetch(url)
fetch
返回一个挂起的承诺,它没有
json()
方法,因此
res.json()显然不是一个函数。见上面哈迪的回答。