我正在建立一个Gatsby网站,其中包含许多通过createPages
创建的页面。我正在从多个端点的API中获取数据。
问题是来自端点的某些数据被重复,我最终重新创建了已经构建的页面。
有没有办法知道已经建立了哪些页面?通过查询子弹,例如?
答案 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);
}
})
确保检查所有来源。