関数型プログラミングでは不変性が導入されているため、es6のマップはデータ、特に配列やオブジェクトを扱う際の一般的なアプローチです。 マップを使用してjavascriptオブジェクトを更新する複数の方法
は、私は上記のアプローチ以外にもcheckedプロパティを変更するための代替は何const todos = (state = [], action) => {
switch(action.type) {
case 'TOGGLE_TODO': {
return state.map(todo =>
todo.id !== action.id ? todo
: {
...todo, checked: !todo.checked
}
)
}
default:
return state
}
}
以下Reduxのの減速がありますか?コードはまったく読むことができますか?
誰かがここで私はどうなるのかだ。この
switch (action.type) {
case "TOGGLE_TODO":
return [
...state.slice(0, action.id),
{...state[action.id], isCompleted: !state[action.id].isCompleted},
...state.slice(action.id + 1)
]
default:
return state;
}
かなりの間違いがあります。ケースに ':'がなく、 'default'が' switch'ブロックの外側にあります – NullDev
あなたのアプローチは実際には[redux's]と同じです(https://github.com/reactjs/redux/blob/master/docs/レシピ/レデューサー/ ImmutableUpdatePatterns.md#アレイ内アイテム更新)1つ。あなたがそれを必要としない限り、それ以上の変更はありません。 – mersocarlin
@mersocarlinなぜitemとaction.itemが必要ですか?それは奇妙だ。 –