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才能修改状态,是因为状态管理使用的场景不对吗?求助....
store里面保存的都是普通Object,你这样直接修改属性值当然是可以的。
官方文档说的“只有通过action才能修改状态”更多的是一种规则/约束,目的是使数据的流动过程变得清晰且可预测,而不是说通过其他方式(比如直接修改对象属性)会报错。
当然你这种方式是无法触发props更新的