Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查已在盖茨比中创建的页面_Javascript_Reactjs_Gatsby - Fatal编程技术网

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

Javascript 检查已在盖茨比中创建的页面,javascript,reactjs,gatsby,Javascript,Reactjs,Gatsby,我正在建立一个盖茨比网站,通过createPages创建了很多页面。我正在从我的API、多个端点获取数据 问题是来自端点的一些数据被重复,我最终会重新创建已经构建的页面 有没有办法知道哪些页面已经生成?例如,通过查询slug?确定每个页面的唯一标识符。例如,如果标识符是slug,则将生成的每个slug存储在createPages foreach循环的数组中,并检查重复项 例如: const existingSlugs = []; result.data.allMarkdownRemark.ed

我正在建立一个盖茨比网站,通过createPages创建了很多页面。我正在从我的API、多个端点获取数据

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


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

确定每个页面的唯一标识符。例如,如果标识符是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);
  }
})

确保检查所有来源。

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