私はここから Redux と es7 を学ぼうとしていますが、次のコードについて以下の著者のポイントを理解するのに苦労しています:
また、この ES7 Object Spread 表記は、状態に対して { message: action.value } の浅いコピーを行っているため、この例に適していることに注意してください (つまり、状態の第 1 レベルのプロパティは、
第 1 レベルのプロパティによって適切にマージされるのではなく、完全に上書きされます) 。 { message: action.value })。
var reducer_3 = function (state = {}, action) {
console.log('reducer_3 was called with state', state, 'and action', action)
switch (action.type) {
case 'SAY_SOMETHING':
return {
...state,
message: action.value
}
default:
return state;
}
}
作成者が Object Spread 表記法を使用してメッセージ: action.value キー/値のペアを元の状態に追加するだけの場合、状態の第 1 レベルのプロパティは {message: action.value} によってどのように上書きされますか? 状態のプロパティの第 1 レベルは、オブジェクト スプレッドの表記法のためにまだ残っていますか? したがって、{a:"foo", b:"bar"}
アクションをディスパッチした後の元の状態が新しい状態だった場合は、正しいでしょうかSAY_SOMETHING
? {a:"foo", b:"bar", message: 'SAY_SOMETHING}
何も置き換えられませんでした。