我们正在使用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 Immutability Helpers中的update
,但使用state =
将结果分配到州内。
这是针对basic Redux guidlines - 即改变国家吗?它似乎是这样,但代码似乎完美而快速地工作,而redux devtools正确显示状态变化...
答案 0 :(得分:1)
您的示例 没问题,因为您实际上并没有改变state
变量指向的对象内容。相反,您只是将名为const newState = update(....)
的局部变量更新为指向不同的对象。
理解变量和引用在Javascript中的工作方式非常重要,这有助于明确这里的内容。
就个人而言,我建议明确做if (1==0) { echo "Yes" }
。