Javascript Next.js生成失败,因为;“鼻涕虫”;未作为字符串提供
我正在尝试使用Next.js和typescript创建博客,我在[slug]上遇到问题。tsx,我一直收到以下错误: 生成错误发生错误:在/blog/[slug]的getStaticPaths中,所需参数(slug)未作为字符串提供 我主要遵循本教程,这是确切的时间戳:Javascript Next.js生成失败,因为;“鼻涕虫”;未作为字符串提供,javascript,typescript,next.js,typeerror,Javascript,Typescript,Next.js,Typeerror,我正在尝试使用Next.js和typescript创建博客,我在[slug]上遇到问题。tsx,我一直收到以下错误: 生成错误发生错误:在/blog/[slug]的getStaticPaths中,所需参数(slug)未作为字符串提供 我主要遵循本教程,这是确切的时间戳: 我成功地用Typescript而不是javascript来学习教程,直到我读到这一部分,现在我无法执行构建 当我尝试运行“纱线运行开发”时,会出现以下错误: TypeError:无法读取未定义的属性“tap” 这是我的[slu
我成功地用Typescript而不是javascript来学习教程,直到我读到这一部分,现在我无法执行构建 当我尝试运行“纱线运行开发”时,会出现以下错误: TypeError:无法读取未定义的属性“tap” 这是我的[slug]代码。tsx:
import { GetStaticPaths, GetStaticProps } from 'next'
let client = require('contentful').createClient({
space: process.env.CONTENTFUL_SPACE_ID,
accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
})
type Params = {
params: {
slug: string
}
}
export const getStaticPaths: GetStaticPaths = async () => {
let data = await client.getEntries({
content_type: 'article',
});
return {
paths: data.items.map(item => ({
params: {slug: item.fields.slug},
})),
fallback: true,
}
}
export const getStaticProps: GetStaticProps = async ({ params }) => {
let data = await client.getEntries({
content_type: 'article',
'fields.slug': params.slug
})
return {
props: {
article: data.items[0]
}
}
}
export default function Article({ article }) {
return <article>
<h1>{article.fields.title}</h1>
{article.fields.content}
</article>
}
从“下一步”导入{GetStaticPath,GetStaticProps}
让client=require('contentful')。createClient({
空格:process.env.CONTENTFUL\u space\u ID,
accessToken:process.env.CONTENTFUL\u访问\u标记,
})
类型参数={
参数:{
鼻涕虫:字符串
}
}
导出常量getStaticPaths:getStaticPaths=async()=>{
让data=wait client.getEntries({
内容类型:“文章”,
});
返回{
路径:data.items.map(item=>({
参数:{slug:item.fields.slug},
})),
回退:没错,
}
}
export const getStaticProps:getStaticProps=async({params})=>{
让data=wait client.getEntries({
内容类型:“文章”,
“fields.slug”:params.slug
})
返回{
道具:{
文章:数据项[0]
}
}
}
导出默认函数项目({Article}){
返回
{article.fields.title}
{article.fields.content}
}
问题是否与slug数据类型有关?我应该显式地将其声明为字符串吗?如何操作?对于第一个错误,请确保
item.fields.slug
未返回未定义的,然后再将其设置为路径。@juliomalves如何测试?