Javascript Next.js生成失败,因为;“鼻涕虫”;未作为字符串提供

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

我正在尝试使用Next.js和typescript创建博客,我在[slug]上遇到问题。tsx,我一直收到以下错误:

生成错误发生错误:在/blog/[slug]的getStaticPaths中,所需参数(slug)未作为字符串提供

我主要遵循本教程,这是确切的时间戳:

我成功地用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如何测试?