【问题标题】:How to Setup Local Store with Static Data in Relay Modern如何在 Relay Modern 中使用静态数据设置本地存储
【发布时间】:2018-04-09 08:06:14
【问题描述】:
我正在构建一个 React 应用程序,它从服务器获取数据并根据用户从下拉菜单中的选择将静态数据传递给各种组件。我想使用 Relay Modern,但我在文档中找不到任何关于它是否支持手动将静态数据加载到商店的信息。任何人都知道这是否可能/如何实施?
顺便说一句,我在这里和其他地方看到了一些类似的问题。但是,这些似乎与接力经典有关,而不是与现代接力有关,后者实施了巨大的变化。
【问题讨论】:
标签:
javascript
reactjs
relayjs
relaymodern
【解决方案1】:
我也问过自己同样的问题。一定有办法给Store/RecordSource补水。作为一种解决方法,我一直在做这样的事情。我为要添加到商店的数据创建一个查询并调用commitPayload。
import {
createOperationSelector,
getOperation
} from 'relay-runtime';
const query = graphql `{ viewer { name } }`;
const environment = new Environment(...);
environment.commitPayload(createOperationSelector(getOperation(query)), {
viewer: {
name: 'Me'
}
});
想知道接力队中是否有人对此有所了解?
【讨论】:
-
这在订阅的情况下(我的用例)想绕过或替换网络层时也很有帮助。具体来说,我使用它来构建类似于 Apollo 中的 updateQuery 的功能,其中自定义客户端逻辑可用于向现有条目添加单个新评论,而无需从服务器重新加载该条目的所有现有 cmets。跨度>