Ошибка типа: result.data.umdHub.articles.forEach не является функцией - PullRequest
0 голосов
/ 25 апреля 2019

У меня проблемы со связыванием страниц с слизнями.Все, что я хочу сделать, это создать страницу со списком статей (которые у меня есть).Но я не могу связать эти статьи, чтобы показать их содержание.Я понимаю, что вам может понадобиться использовать createPages.Ниже приведен код, который я пытаюсь.Кто-нибудь имеет опыт с этим, который мог бы указать мне правильное направление для ссылки на страницы индекса и статьи?

exports.createPages = ({ graphql, actions }) => {
  // **Note:** The graphql function call returns a Promise
  // see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise for more info
  const { createPage } = actions
  return graphql(`
      {
        umdHub {
          articles {
            data {
              slug
              title
              body
              subtitle
              hero_image {
                url_1200_630
              }
            }
          }
        }
      }
  `
).then(result => {
    result.data.umdHub.articles.forEach(({ data }) => {
      createPage({
        path: articles.data.slug,
        component: path.resolve(`./src/article.js`),
        context: {
          // Data passed to context is available
          // in page queries as GraphQL variables.
          slug: articles.data.slug,
        },
      })
    })
  })
}

Я получаю эту ошибку с кодом выше:

TypeError: result.data.umdHub.articles.forEach не является функцией


Вторая попытка:

const path = require(`path`)

exports.createPages = ({ graphql, actions }) => {
  const { createPage } = actions
  const articleTemplate = path.resolve(`./src/terp/article.js`)
  // Query for markdown nodes to use in creating pages.
  // You can query for whatever data you want to create pages for e.g.
  // products, portfolio items, landing pages, etc.
  return graphql(`
    {
        umdHub {
          articles {
            data {
              id
              title
              subtitle
              body
              summary
              hero_image {
                url_1200_630
              }
              authorship_date {
                formatted_short
                unix
                unix_int
                formatted_long
                formatted_short
                time
              }
              slug
            }
          }
        }
      }
  `).then(result => {
    if (result.errors) {
      throw result.errors
    }

    // Create blog post pages.
    result.data.umdHub.articles.data.forEach(data => {
      createPage({
        // Path for this page — required
        path: `${data.slug}`,
        component: articleTemplate,
        context: {
          // Add optional context data to be inserted
          // as props into the page component..
          //
          // The context data can also be used as
          // arguments to the page GraphQL query.
          //
          // The page "path" is always available as a GraphQL
          // argument.
        },
      })
    })
  })
}

Возвращает ошибку:

⠐ createPages "gatsby-node.js" вашего сайта создал страницу с несуществующим компонентом

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