首页 > 解决方案 > Gatsby 将 graphql 数据与动态数据合并

问题描述

我有一个用 gatsby 制作的网站,其中包含一些静态数据(项目目录),但是在运行时当用户登录时,它会向 api 发出请求以获取他们有权访问的项目列表(这仅返回一个id 的列表。

是否有可能(这样做是否有意义) - 到:

所以基本上

items = { 1: { title: 'itemA', price: 1 }, 2: { title: 'itemB', price: 2 }}; // from a Gql query

userItems = [1, 3, 5]; // from a dynamic fetch request

userItems.map(id => <Item {...items[id] } />) // easy lookup of item info

我知道如果我不使用 Gql,我可以只获取项目的 json 数据,并在服务获取它时将其与用户数据合并,或者就像我上面的示例一样,因为我将控制 json 的结构数据,我只是想利用 gql 来学习它,因此项目数据可以在可能完全静态的不同页面上重复使用(例如所有项目的列表),然后我可以选择哪些项目属性我想。

我的数据目前是一个项目数组,就好像我将它存储为项目的键控对象然后通过 json 转换器将其提供给 gql,我的每个节点都不同,所以我似乎无法获取列表的所有项目。

标签: graphqlgatsby

解决方案


推荐阅读