Как решить «Не удается прочитать свойство неопределенного» - PullRequest
0 голосов
/ 28 ноября 2018

Я использую генератор статического сайта на основе JS, Гэтсби, и пытаюсь создать страницу для каждой категории, разбивая страницы на одну и ту же страницу.Это мой код в gatsby-node.js, который получает сообщение об ошибке «Невозможно прочитать свойство» kebabCase «undefined».

        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.forEach (category ... ect работает отлично. Что мне не хватает?

Большое спасибо.

1 Ответ

0 голосов
/ 28 ноября 2018

Ваш цикл Array # foreach затеняет _, поэтому он больше не относится к lodash.Это относится к текущему значению массива, которое равно undefined.

Измените .forEach((_, i) и используйте другое имя переменной, чтобы вы не затеняли _.Например..forEach((el, i).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...