【问题标题】:Patterns for undo-redo state traversal with Relay-GraphQL mutations带有 Relay-GraphQL 突变的撤销-重做状态遍历模式
【发布时间】:2016-02-04 10:02:22
【问题描述】:

使用 Immutable 和 Flux 实现实现撤消/重做功能基本上是微不足道的。这部分是由于 Immutable 使值传递成为可能,部分是由于使用 Flux 的浏览器/内存特性。

然而,用 Relay-GraphQL 突变来概念化这一点并不明显。是否有任何已知的模式可以简化这一点?

【问题讨论】:

  • 你能澄清一下用例吗?撤消/重做的动机是为了启用调试,还是提供面向用户的能力来撤消/重做已在服务器上提交的突变?
  • @JoeSavona 用例基本上是撤消重做功能。但是自从发布这个问题以来,我对 GraphQL/Relay 有了更多的了解,而且这种功能似乎超出了他们的范围。就范围内的任何事物而言,记住这一点并有助于实现此类功能会很有趣。
  • @JoeSavona 感谢您的工作和时间。这些都是很棒的项目。

标签: immutable.js graphql relayjs


【解决方案1】:

Relay(还)不能做本地状态。因此,您目前的选择是 a) 在 Flux 存储中存储更改的“草稿”,或者 b) 创建一个草稿类型,您可以通过突变不断创建新版本。您可以在客户端跟踪新的草稿 ID,并通过还原活动草稿 ID 来“撤消”。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2023-03-05
  • 2016-05-06
  • 2016-05-30
  • 2016-01-31
  • 2016-11-18
  • 2020-05-21
  • 2017-07-28
相关资源
最近更新 更多