Graphql 下一个js-Can';t使用apollo客户端api生成动态GetStaticPath

Graphql 下一个js-Can';t使用apollo客户端api生成动态GetStaticPath,graphql,next.js,apollo-client,ssg,Graphql,Next.js,Apollo Client,Ssg,我不想使用Apollo graphql客户端在next.js中为SSG导出生成我帖子的slug列表。 这是我的密码: import { gql } from "@apollo/client"; import client from "../../graphql/apollo-client"; import { BLOG_POSTS, POST_DATA } from "../../graphql/apollo-queries"; e

我不想使用Apollo graphql客户端在next.js中为SSG导出生成我帖子的slug列表。 这是我的密码:

import { gql } from "@apollo/client";
import client from "../../graphql/apollo-client";
import { BLOG_POSTS, POST_DATA } from "../../graphql/apollo-queries";


export async function getStaticPaths() {
   const { loading, error, data } = await client.query({ query: BLOG_POSTS });
   const peths = data.posts.nodes.map((post) => ({
      params: { slug: post.slug },
   }));

   return {
      paths: peths || [],
      fallback: true,
   };
}



export async function getStaticProps({ params }) {
   const { data } = await client.query({
      query: POST_DATA,
      variables: { id: params.slug, idType: "SLUG" },
   });

   return {
      props: {
         post: data.post,
      },
   };
}

export default function BlogSlug({ post }) {
   return (
       <h1>{post.title}</h1>
   )
}
import{gql}来自“@apollo/client”;
从“../../graphql/apollo client”导入客户端;
从“../../graphql/apollo查询”导入{BLOG_POSTS,POST_DATA}”;
导出异步函数getStaticPaths(){
const{loading,error,data}=wait client.query({query:BLOG_POSTS});
const peths=data.posts.nodes.map((post)=>({
参数:{slug:post.slug},
}));
返回{
路径:peths | |[],
回退:没错,
};
}
导出异步函数getStaticProps({params}){
const{data}=wait client.query({
查询:POST_数据,
变量:{id:params.slug,idType:“slug”},
});
返回{
道具:{
post:data.post,
},
};
}
导出默认函数BlogSlug({post}){
返回(
{post.title}
)
}

当我使用
npm run dev
在开发模式下启动下一个应用程序时,它工作正常,但是当我想要运行
next build和&next export
时,似乎API不工作,
data
返回
undefined
,因此,未生成任何页面,它会抛出一个错误,说明
TypeError:cannotread属性'title'的未定义

fallback:true
更改为
fallback:false
解决了问题

从Next.js网站():

如果在中启用了回退,请确保组件处理回退 获取静态路径