Redux,state 可以不通过action修改

1.redux的store状态如果为引用类型的话,可以直接修改store.getState().xxx.xxx= ? 直接修改掉;

    let state1 = {person: {name:'ss'}}
    
    function reduce(state = state1, action) {
        return {...state}
    }
    const store = Redux.createStore(reduce)
    
    console.log(store.getState()) // 打印为lisi
    let tempState = store.getState()
    tempState.person.name="lisi"
    console.log(store.getState()) // 打印为lisi

问题: 官方文档明确只有通过action才能修改状态,是因为状态管理使用的场景不对吗?求助....

阅读 3.2k
1 个回答

store里面保存的都是普通Object,你这样直接修改属性值当然是可以的。

官方文档说的“只有通过action才能修改状态”更多的是一种规则/约束,目的是使数据的流动过程变得清晰且可预测,而不是说通过其他方式(比如直接修改对象属性)会报错。

当然你这种方式是无法触发props更新的

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