react-redux修改state实时性的问题

比如有一个数组,因为一些需求,需要按下标依次修改数组元素,下面第一个数字是下标,第二个是修改成的值

this.props.action(this.props.arr, 0, 1);
this.props.action(this.props.arr, 1, 1);
this.props.action(this.props.arr, 2, 1);

但因为redux修改arr后似乎不能实时更新并传到组件,所以导致这三条命令执行完之后,前两条被最后一条覆盖了
也就是说arr初始值是[0,0,0],执行之后变成[0,0,1],而不是[1,1,1]

如果把后面两条加定时器倒是可以解决,但不方便,因为是批量操作不止三条,还有个redux-thunk也许可以,没试过
不知道有没有什么更方便快捷的方法

阅读 3.9k
1 个回答

action中是不需要穿this.props.arr的,你的这个action应该是专门处理arr这个状态的,action只需要传修改元素的下标和修改后的值即可,在reducer中根据这两个参数修改arr这个状态,这样每次dispatch的action都会及时的反应到全局的state上,不会存在你说的覆盖更新问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题