使用反应导航和中继进行乐观更新

Posted

技术标签:

【中文标题】使用反应导航和中继进行乐观更新【英文标题】:Optimistic updates with react-navigation and relay 【发布时间】:2019-07-28 18:37:17 【问题描述】:

我正在使用GraphqlRelayReact-Navigation 构建一个React-Native 应用程序。

当我将新记录添加到 FlatListSectionedList 时,我会打开一个带有 react-navigation 的模式屏幕(从上一个屏幕导航)并允许用户输入信息,然后我会启动突变。我想乐观地更新之前的屏幕。即我不想刷新应用程序来查看更改。

据我了解,我有两种选择:

1) 我可以通过 react-navigation 参数和更新状态将模态屏幕中的新数据传回屏幕。

2) 我可以使用 Redux

我很好奇其他人是否有更好的方法来处理更新。谢谢

【问题讨论】:

我最终在这里使用了 redux... 【参考方案1】:

鉴于您的数据处于连接状态,您可以使用 updaterConfig。检查中继文档here。

如果你不使用连接,这有点棘手,但你可以使用optimisticUpdater 函数来更新中继存储。中继文档here

【讨论】:

以上是关于使用反应导航和中继进行乐观更新的主要内容,如果未能解决你的问题,请参考以下文章

更新来自其他组件的道具反应原生

在状态转换错误期间无法更新-导航到另一个屏幕时使用挂钩对本机做出反应

Apollo GraphQL 乐观响应和更新商店问题

乐观锁和悲观锁

乐观锁和悲观锁的区别和使用场合

不变违规:不变违规:尝试从未标记为“本机”的节点获取本机标记 - 反应导航更新导致崩溃