[英]Redux/React-Redux - using “state = XXX” in the reducer
我们将Redux.js与React.js(React-Redux)一起使用,在reducer中,我们使用以下代码(我们使用redux-actions来减少样板):
const update = require('react/lib/update');
const myReducer = handleActions
({
[myAction]: (state, action) => {
state = update(state, {
something: {$set: !state.someProperty}
});
return someFunction(state);
}
})
我们使用来自React不可变性助手的 update
,但是使用state =
将结果分配到state =
。
这是否违反了Redux的基本准则 -即改变状态? 看起来是这样,但是代码似乎可以完美,快速地运行,并且redux devtools显示状态正确...
你举的例子是好的,因为你没有真正变异的对象的内容state
变量指向。 相反,您只是更新名为state
的局部变量以指向另一个对象。
了解变量和引用在Javascript中的工作方式非常重要,这将有助于弄清这里发生的事情。
就个人而言,为清晰起见,我建议进行const newState = update(....)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.