为了账号安全,请及时绑定邮箱和手机立即绑定

如何在组件中收听Redux动作流

如何在组件中收听Redux动作流

回首忆惘然 2021-03-29 16:13:53
我正在使用以下架构的React应用程序:reduxtypesafe-actionsredux-observable我的问题是:如何在特定的redux操作上执行UI操作?例如,假设我们定义了以下异步操作typesafe-actions:export const listTodo = createAsyncAction(  'TODO:LIST:REQUEST',  'TODO:LIST:SUCCESS',  'TODO:LIST:FAILURE',)<void, Todo[], Error>();Epic将监视listTodo.request()并发送API调用,然后将响应转换为listTodo.success()操作。然后,redux reducer将通过listTodo.success()动作触发,并将待办事项列表存储到redux存储中。在此设置下,假设我要在组件中执行以下操作:调度一个listTodo.request()动作以检索所有动作异步请求完成后(即在listTodo.success()操作出现在操作流中之后),将UI重定向到第二条路径所以我的问题是,我如何看待动作流并对动作做出反应listTodo.success()?更新:为避免过于具体,我们可以考虑另一种情况。我只想显示一个警报,window.alert()之后listTodo.success()在动作流中出现。或简单地console.log(),或更改局部状态(而不是全局redux状态)的任何内容。有办法实现吗?
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

使用redux时,组件会根据状态进行更新。

如果要基于操作更新组件,则要更新化简器中的状态,例如在化简器中设置{... state,success:true}。从那里您只需像往常一样简单地将状态读取到组件中,如果状态变为成功,则显示窗口。


查看完整回答
反对 回复 2021-04-08
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信