检查在盖茨比中已经创建的页面

时间:2020-05-19 11:46:50

标签: javascript reactjs gatsby

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

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

有没有办法知道已经建立了哪些页面?通过查询子弹,例如?

1 个答案:

答案 0 :(得分:1)

确定每个页面的唯一标识符。例如,如果标识符是段子,则将每个生成的段子存储在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);
  }
})

确保检查所有来源。