0

我正在使用 Prismic 作为我的 CMS 在 Gatsby 中建立一个站点,到目前为止一切都很好。虽然我遇到了一些问题,但我无法弄清楚。

我希望能够让从 Prismic 中提取的所有帖子都可以按标签过滤并默认显示所有帖子。

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

但是,我无法弄清楚如何在构建时获取所有帖子并在未选择过滤器时显示所有帖子。But when tags are selected and in the active tags array only show the posts that contain those tags.

据我了解,Gatsby 不允许在运行时运行查询,只会在构建期间运行它们。我也尝试过有条件地渲染模板组件的想法,并根据该帖子的标签是否包含在活动标签数组中而改变它,但那里也没有运气。

我尝试询问 prismic 支持,但他们说他们以前没有使用过这个用例的用户。

任何想法将不胜感激。

4

1 回答 1

1

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

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

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

于 2020-03-02T14:47:15.283 回答