【问题标题】:Check pages already created in Gatsby检查已经在 Gatsby 中创建的页面
【发布时间】:2020-05-20 00:16:59
【问题描述】:

我正在构建一个 Gatsby 网站,其中包含许多通过 createPages 创建的页面。我正在从多个端点从我的 API 中获取数据。

问题是来自端点的一些数据是重复的,我最终会重新创建已经构建的页面。

有没有办法知道哪些页面已经构建?例如,通过查询 slug?

【问题讨论】:

  • 为什么不在创建页面之前先过滤数据
  • 确定它是否重复的唯一标识符是什么?蛞蝓?然后,您可以将每个生成的 slug 存储在 createPages foreach 循环中的数组中并检查重复项。
  • @AlbertSkibinski 这实际上就是我们最终所做的。谢谢!如果您创建一个答案,我会将其标记为正确答案。

标签: javascript reactjs gatsby


【解决方案1】:

确定每个页面的唯一标识符。例如,如果标识符是 slug,则将每个生成的 slug 存储在 createPages foreach 循环中的数组中并检查重复项。

例子:

const existingSlugs = [];

result.data.allMarkdownRemark.edges.forEach(({ node }) => {
  if (!existingSlugs.includes(node.fields.slug)) {
    createPage({
      path: node.fields.slug,
      component: path.resolve(`./src/templates/blog-post.js`),
      context: {
       slug: node.fields.slug,
      },
    })
    existingSlugs.push(node.field.slug);
  }
})

确保检查所有来源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2021-09-02
    • 2021-12-24
    • 2017-08-10
    • 2020-07-25
    相关资源
    最近更新 更多