reactjs - 通过 ui 触发动作的行为与使用键事件处理时不同
问题描述
我实现了一个撤消/重做系统,该系统会触发它积累的一些 redux 操作。如果我通过 UI 触发此调度,则流程似乎与我通过订阅键事件执行完全相同的操作时不同。
我可以使用“ctrl + z”或单击 UI 中的按钮触发撤消。有一个实体可以监听存储更改并执行一些逻辑。单击 UI 时,首先运行此订阅,然后更新我的 UI 的其余部分。如果我使用键事件执行此操作,则 UI 首先响应,然后是商店订阅者。
我怎样才能做到这一点?
在我派出之前,踪迹是不同的。这是当我用鼠标单击 UI 元素时。按下键,整个列表都丢失了,我只能keydown
在调度之前看到处理程序。
解决方案
似乎这与批处理有关,并且密钥处理程序是同步的。通过在 reactDom 渲染后发生商店订阅,可以在一个简单的示例中重现这一点。
看来我的用例的解决方案是在 react dom 之前订阅商店。
推荐阅读
- c# - Aspnet Core 身份管理总是让我返回登录页面
- flutter - Flutter - 验证用户输入
- python-3.x - 在 Python3 中同时对内容的类型和类型进行单元测试
- flutter - 具有相对于父级的位置的颤振覆盖
- c - 为用户在 C 中输入的金额提供最低金额的账单
- html - jQuery div 内容更改
- c# - WPF C#在组合框中选择的文本框中读取一个txt文件
- android - 作为外行,我如何检查移动应用程序的代码库?
- reactjs - 如何在 React 的类组件中定义方法?
- c# - 从 Visual Studio 2019 在 Kestrel 下运行 .NET 5 Api 会忽略 launchSettings.json applicationUrl 设置