Javascript 如何解决';无法读取未定义的';

Javascript 如何解决';无法读取未定义的';,javascript,pagination,graphql,gatsby,Javascript,Pagination,Graphql,Gatsby,我正在使用一个基于JS的静态站点生成器Gatsby,我正在尝试为每个类别创建一个页面,同时对同一页面进行分页。 这是我在gatsby-node.js中的代码,它得到了错误“无法读取未定义的”属性“kebabCase” let categories = [] _.each(result.data.allMarkdownRemark.edges, edge => { if (_.get(edge, "node.frontmatter.ca

我正在使用一个基于JS的静态站点生成器Gatsby,我正在尝试为每个类别创建一个页面,同时对同一页面进行分页。 这是我在gatsby-node.js中的代码,它得到了错误“无法读取未定义的”属性“kebabCase”

        let categories = []
        _.each(result.data.allMarkdownRemark.edges, edge => {
            if (_.get(edge, "node.frontmatter.categories")) {
                categories = categories.concat(edge.node.frontmatter.categories)
            }
        })

        const categoryarticles = result.data.allMarkdownRemark.edges
        const categoryarticlesPerPage = 6
        const numPages = Math.ceil(categoryarticles.length / categoryarticlesPerPage)

        Array.from({ length: numPages }).forEach((_, i) => {
            categories.forEach(category => {
                createPage({
                    path: i === 0 ? `/${_.kebabCase(category)}` : `/${_.kebabCase(category)}/${i + 1}`,
                    component: managementTemplate,
                    context: {
                        category,
                        limit: categoryarticlesPerPage,
                        skip: i * categoryarticlesPerPage,
                    },
                })
            })
        })
category实际上是定义的,事实上,当我创建category页面而不尝试分页时,代码categories.forEach(category…ect)工作得很好。 我错过了什么

非常感谢。

您的数组#foreach循环正在阴影化
\u
,因此它不再指lodash。它指的是当前数组值,未定义

更改
.forEach((uu,i)
并使用不同的变量名,这样您就不会对
\u
进行阴影处理。例如
.forEach((el,i)
您的数组#forEach循环对
\u
进行阴影处理,因此它不再引用lodash。它引用当前数组值,该值未定义


更改
.forEach((,i)
并使用不同的变量名,这样您就不会对
.forEach((el,i)

进行阴影处理。该错误并没有说
类别
未定义。它说
未定义。哦,感谢您指出了这一点。在文件的顶部,我正在定义const=require(“lodash”)尽管如此,它也应该被定义吗?那个错误并没有说
类别
是未定义的。它说
\uuu
是未定义的。噢,谢谢你指出了这一点。虽然在文件的顶部我定义了const=require(“lodash”),但它也应该被定义吗?