Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Next.js NextJS-类别(标记)-动态页面_Next.js - Fatal编程技术网

Next.js NextJS-类别(标记)-动态页面

Next.js NextJS-类别(标记)-动态页面,next.js,Next.js,我将Next.js用于静态站点生成,并创建了一个类别(标记)组件,如下所示: 从“下一个/链接”导入链接; 导出默认函数CategorySection({categories}){ 返回( {categories.map((categority)=>{ 返回( {category.contentfulmata.tags.map((tag)=>{ 返回( {tag.name} ); })} ); })} ); } 我希望能够为所有标签创建动态页面,并仅显示与标签相关的文章 我已在以下位置创建了我

我将Next.js用于静态站点生成,并创建了一个类别(标记)组件,如下所示:

从“下一个/链接”导入链接;
导出默认函数CategorySection({categories}){
返回(
{categories.map((categority)=>{
返回(
{category.contentfulmata.tags.map((tag)=>{
返回(
{tag.name}
);
})}
);
})}
);
}
我希望能够为所有标签创建动态页面,并仅显示与标签相关的文章

我已在以下位置创建了我的[slug].jsx文件:/pages/articles/categories/[slug].jsx

[slug].jsx文件如下:

从“../../../utils/contentful”导入{getArticles,getArticle}”;
导出异步函数getStaticPaths(){
const data=wait getArticles();
返回{
路径:data.articleCollection.items.map((article)=>({
参数:{slug:article.contentfulmata.tags.id},
})),
后退:错误,
};
}
导出异步函数getStaticProps(上下文){
const data=wait getArticle(context.params.slug);
返回{
道具:{article:data.articleCollection.items[0]},
};
}
导出默认函数类别({article}){
返回{article.contentfulmata.tags.name};
}
使用“我的文章”页面上的标记进行导航时,我遇到以下错误:

错误:所需参数(slug)未作为/articles/categories/[slug]的GetStaticPath中的字符串提供

如何让它使用标记创建动态页面

错误:所需参数(slug)未作为/articles/categories/[slug]的GetStaticPath中的字符串提供

在GetStaticPath中,需要将slug转换为string

params: { slug: article.contentfulMetadata.tags.id.toString() }

没有为slug use传递数字。toString()我尝试过。toString()但它说它未定义。在哪里,“article.contentfulmata.tags.id”是一个数字?@MathiasRiisSørensen如果
article.contentfulmata.tags.id
未定义,则不应为其生成路径。在
getStaticPaths
中为其添加路径之前,请确保该值有效。好的,这很有意义。当我使用GraphiQL时,我能够查询contentfulMetadata.tags.id,这也用于文章页面上的文章卡片。id输出字符(字符串)而不是数字。您好,当我这样做时,会收到以下错误消息:“TypeError:无法读取未定义的属性'toString'”,并且当您console.log(article.contentfulMetadata.tags.id)时你有什么?它输出一个带有我当前拥有的标记的数组。因此,问题是你无法将数组转换为迭代article.contentfulmata.tags所需的字符串。id@MathiasRiisSørensen请向我展示console.log(article.contentfulMetadata.tags.id)的结果