将事件转换为Redux操作

时间:2019-04-08 09:48:16

标签: reactjs redux redux-thunk

当前,我正在一个项目中使用事件来更新侦听这些事件的其他组件,并尝试将这些事件转换为Redux操作。

一个示例,当用户登录时,有组件侦听此事件并调用API以更新其状态,这些事件是基于组件是否存在而触发的,因此在Redux中,我必须检查道具是否已更改或而不是使用componentWillupdate在组件内部,然后从那里调用API。

我需要知道这是做类似事情的最佳解决方案,还是我可以使用另一个插件?

1 个答案:

答案 0 :(得分:1)

我将重构代码,以将发射/监听事件模式删除,使其更接近Redux的体系结构。

发出事件的组件应调用动作创建者。这些动作创建者可以调用REST API或执行其他异步操作(例如,使用redux-thunk),并生成零个,一个或多个动作来更新Redux的状态。

另一方面,侦听事件的组件必须在输入中接收来自Redux状态的新数据,并相应地进行更新。一个简单的组件应在其道具更改时(即其状态更改时)更改其行为。在这种情况下,组件的状态是Redux内部存储的数据的子集,并在分派新操作时由reducer更新。