具有 Relay-GraphQL 突变的撤销-重做状态遍历模式

Patterns for undo-redo state traversal with Relay-GraphQL mutations

使用 Immutable 和 Flux 实现实现 undo/redo 功能基本上是微不足道的。这部分是由于 Immutable 使值传递成为可能,部分是由于使用 Flux 的 in-browser/in-memory 性质。

然而,根据 Relay-GraphQL 突变来概念化这一点并不明显。有没有已知的模式可以简化这个?

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