0

Redux 树几乎是一个动作列表和从这些动作派生的状态。
像这样的东西:

{ type: "INIT", number: 2 }
{ type: "ADD", addend: 4 }
{ type: "MULTIPLY", factor: 2 }
{ type: "SUBTRACT", subtrahend: 3 }

store.getState() // returns { number: 9 }

我正在摆弄的项目需要允许将新操作拼接到该日志的中间。例如,在 MULTIPLY 之后和 SUBTRACT 之前添加“除以四”。该动作需要插入到历史记录中,然后重播任何后续动作。

这个“计算器”示例绝对是简化的,但希望您明白这一点。

这是 Redux 的有效用例吗?是否有考虑到这种类型的动作流设计的库或通用技术?

4

1 回答 1

1

昨天看到你在 Reddit 上问了这个问题,我已经在那里回答了,但为了完整起见,我将在此处包含答案:

是的,有几个现有的 Redux 插件库用于处理撤销/重做类型的功能。请参阅我的Redux 插件目录的Use Cases#Undo/Redo部分。

虽然我自己没有使用过其中任何一个,但我怀疑可能与您的用例最相关的一个是 Microsoft 推出的名为redux-dag-history的库。不幸的是,该库似乎没有特别好的文档记录,但作者确实写了一篇博客文章讨论了库背后的概念

您还可以查看Redux DevTools store enhancer的内部实现,它基本上完成了这类工作,但实际上只用于开发用途。您可能会重复使用它,或对其进行修改以更好地适应您的用例。

于 2017-08-08T15:33:09.907 回答