Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 运行时在Gatsby中重新运行查询_Javascript_Reactjs_Gatsby_Prismic.io - Fatal编程技术网

Javascript 运行时在Gatsby中重新运行查询

Javascript 运行时在Gatsby中重新运行查询,javascript,reactjs,gatsby,prismic.io,Javascript,Reactjs,Gatsby,Prismic.io,我正在盖茨比建立一个网站,使用Prismic作为我的CMS,到目前为止,它非常棒。虽然我碰到了一点问题,但我还是搞不懂 我希望能够有从Prismic拉入的所有帖子都可以通过标签过滤,并默认显示所有帖子 我已经成功地设置了一个数组来存储用户在页面上选择的标记,并且我发现我可以将一个静态值数组传递到查询中,以便在构建时过滤帖子 但是,我不知道如何在构建时获取所有帖子,并在没有选择过滤器的情况下显示所有帖子。但是,当选择标记时,活动标记数组中仅显示包含这些标记的帖子 据我所知,盖茨比不允许在运行时运行

我正在盖茨比建立一个网站,使用Prismic作为我的CMS,到目前为止,它非常棒。虽然我碰到了一点问题,但我还是搞不懂

我希望能够有从Prismic拉入的所有帖子都可以通过标签过滤,并默认显示所有帖子

我已经成功地设置了一个数组来存储用户在页面上选择的标记,并且我发现我可以将一个静态值数组传递到查询中,以便在构建时过滤帖子

但是,我不知道如何在构建时获取所有帖子,并在没有选择过滤器的情况下显示所有帖子。但是,当选择标记时,活动标记数组中仅显示包含这些标记的帖子

据我所知,盖茨比不允许在运行时运行查询,而只在构建期间运行查询。我还考虑过有条件地呈现模板组件,并根据该帖子的标记是否包含在活动标记数组中而改变模板组件,但也没有运气

我试着请求prismic支持,但他们说他们以前没有使用过这个用例的用户


任何想法都将不胜感激

因为盖茨比是静态的,所以没有运行服务器来响应请求

如果希望实时获取过滤后的数据,可以使用Prismic的GraphQLAPI客户端,然后可以将该信息传递到相关组件中进行显示。但是,这些数据不会经过盖茨比的GraphQL层,因此盖茨比正在执行的任何修改、扩展或副作用(如图像转换、自定义分辨率、注释等)都将不可用


如果您已经将数据加载到客户机上(即,您正在获取所有要过滤的post元数据),则更简单的方法是只在客户机端过滤数据

类似于不带过滤器的
allPrismicPost
应该可以为您提供所有帖子。如果你需要更多帮助,请分享一些代码,这样我们就可以看到你的错误所在。如前所述,我目前可以很好地查询所有帖子,甚至可以手动查询数组中的标签。我想真正的问题是:是否可以在运行时重新查询API而不必重建站点?如果是这种情况,您将如何将数组传递到graphql中?如果在运行时重建站点是不可能的,那么我需要研究如何过滤数据。