美文网首页
关于Redux框架,Reducer中state处理方

关于Redux框架,Reducer中state处理方

作者: 想个名字真难ing | 来源:发表于2018-03-21 10:51 被阅读0次

为什么要创建副本state

redux-devtools中,我们可以查看到redux下所有通过reducer更新state的记录,每一个记录都对应着内存中某一个具体的state,让用户可以追溯到每一次历史操作产生与执行时,当时的具体状态,这也是使用redux管理状态的重要优势之一.

若不创建副本,redux的所有操作都将指向内存中的同一个state,我们将无从获取每一次操作前后,state的具体状态与改变,若没有副本,redux-devtools列表里所有的state都将被最后一次操作的结果所取代.我们将无法追溯state变更的历史记录.

创建副本也是为了保证向下传入的this.props与nextProps能得到正确的值,以便我们能够利用前后props的改变情况以决定如何render组件
采用官方提供的Immutability Helper工具中update()方法进行数据更新(链接)

import update from 'react/lib/update'

function todoApp(state = initialState, action) {
  switch (action.type) {
    case SET_VISIBILITY_FILTER:
      return update(state, {
        visibilityFilter:{
          d:{$set: action.filter}
        }
      })
    default:
      return state
  }
}

相关文章

网友评论

      本文标题:关于Redux框架,Reducer中state处理方

      本文链接:https://www.haomeiwen.com/subject/armwqftx.html