首页 > 解决方案 > 通过 ui 触发动作的行为与使用键事件处理时不同

问题描述

我实现了一个撤消/重做系统,该系统会触发它积累的一些 redux 操作。如果我通过 UI 触发此调度,则流程似乎与我通过订阅键事件执行完全相同的操作时不同。

我可以使用“ctrl + z”或单击 UI 中的按钮触发撤消。有一个实体可以监听存储更改并执行一些逻辑。单击 UI 时,首先运行此订阅,然后更新我的 UI 的其余部分。如果我使用键事件执行此操作,则 UI 首先响应,然后是商店订阅者。

我怎样才能做到这一点?

在此处输入图像描述

在我派出之前,踪迹是不同的。这是当我用鼠标单击 UI 元素时。按下键,整个列表都丢失了,我只能keydown在调度之前看到处理程序。

在此处输入图像描述

标签: reactjsredux

解决方案


似乎这与批处理有关,并且密钥处理程序是同步的。通过在 reactDom 渲染后发生商店订阅,可以在一个简单的示例中重现这一点。

看来我的用例的解决方案是在 react dom 之前订阅商店。


推荐阅读