繁体   English   中英

Redux / React-Redux-在reducer中使用“ state = XXX”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM