Reactjs nextjs获取url参数并传递到getStaticPaths()函数中
我有一个路由Reactjs nextjs获取url参数并传递到getStaticPaths()函数中,reactjs,next.js,Reactjs,Next.js,我有一个路由/[catSlug]/[slug],我正在尝试从url获取catSlug参数,然后将其传递到getStaticPaths()函数中 我收到错误错误:在/[catSlug]/[slug] 我可以从路由器.queryhook获得这个,但是我不知道如何将它传递给getStaticPaths()函数 [catSlug]/[Slug].js import { GraphQLClient } from 'graphql-request'; import React from 'react' im
/[catSlug]/[slug]
,我正在尝试从url获取catSlug参数,然后将其传递到getStaticPaths()函数中
我收到错误错误:在/[catSlug]/[slug]
我可以从路由器.queryhook获得这个,但是我不知道如何将它传递给getStaticPaths()函数
[catSlug]/[Slug].js
import { GraphQLClient } from 'graphql-request';
import React from 'react'
import { useRouter } from 'next/router'
const graphcms = new GraphQLClient(
'api'
);
export async function getStaticProps({ params }) {
const { product } = await graphcms.request(
`
query ProductPageQuery($slug: String!) {
product(where: { slug: $slug }) {
name
price
}
}
`,
{
slug: params.slug,
// catSlug: params.catSlug
}
);
return {
props: {
product
}
};
}
export async function getStaticPaths() {
const { products } = await graphcms.request(`
{
products {
slug
name
cat
}
}
`);
return {
paths: products.map(({ slug ,catSlug }) => ({
params: { slug, cat: catSlug }
})),
fallback: false
};
}
export default ({ product }) => {
const router = useRouter()
const { catSlug } = router.query
return(
<React.Fragment>
<h1>{product.name}</h1>
<p>{product.slug}</p>
</React.Fragment>
)
}
从“graphql请求”导入{GraphQLClient};
从“React”导入React
从“下一个/路由器”导入{useRouter}
const graphcms=新的GraphQLClient(
“api”
);
导出异步函数getStaticProps({params}){
const{product}=wait graphcms.request(
`
查询ProductPageQuery($slug:String!){
产品(其中:{slug:$slug}){
名称
价格
}
}
`,
{
slug:params.slug,
//catSlug:params.catSlug
}
);
返回{
道具:{
产品
}
};
}
导出异步函数getStaticPaths(){
const{products}=wait graphcms.request(`
{
产品{
鼻涕虫
名称
猫
}
}
`);
返回{
路径:products.map({slug,catSlug})=>({
参数:{slug,cat:catSlug}
})),
后退:错误
};
}
导出默认值({product})=>{
const router=useRouter()
const{catSlug}=router.query
返回(
{product.name}
{product.slug}
)
}