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