Graphql 下一个js-Can';t使用apollo客户端api生成动态GetStaticPath
我不想使用Apollo graphql客户端在next.js中为SSG导出生成我帖子的slug列表。 这是我的密码: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
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网站():
如果在中启用了回退,请确保组件处理回退
获取静态路径