まず、これは突然変異した状態変化であると理解しています。私は私に恥を知っている。時には正しい方法が賢明でないように見えるか、少なくとも私はそれ以上よく分かりません。Reduxレデューサーの動的キー注入
事前に定義された項目の古い状態と新しい状態を作成したり交換したりすることなく、自分の状態にキーを挿入することはできません。私は単にしばらくの間、キーを注入したいと思います。もし私がしなければ、それらはすべてとにかくクリアされます。私の減速は、このようになります
{graphSite: {site: "default", graphBrowser: { graphID: '', graphKey:'' }, browsable:[] }};
のように私の初期状態は、だから、これは動作しますが、閲覧可能な配列であるもののReduxのdevのツールは、状態の変化を示すdoesntのバベルES7オブジェクト広がりオペレータに
case BROWSER: { state.graphSite.browsable[action.id] = action.payload
return {...state}
}
を使用して**に見えますツールで正しく
case BROWSER: { state.graphSite.browsable[action.id] = action.payload
return {...state,
graphSite: {...state.graphSite,
graphBrowser: {...state.graphSite.graphBrowser},
browsable: {...state.graphSite.browsable} }
}
}
今閲覧可能な番組が、理想的に私はこれらのsがある:私は木目に対して行ってきましたので、私はへの変更を拡張する場合のアクセスは、おそらくこれがありますアメ事。
したがって、最初のストア状態にないダイナミックキーの状態を操作する最善の方法は何ですか。これは、私が元の状態を操作したので、何かが間違っているように感じるだけです。
あなたはその状態を突然変異させています。 'state.graphSite.browsable [action.id] = action.payload'です。あなたは状態の深いコピーを行い、あなたのやり方でコピーを変更してから、コピーを返す必要があります – xiaofan2406
私はアクションIDが十分に動的であることを望みました。問題は、オリジナルを突然変異させて新しいものとして返さない限り、コピーするものはないということです。そうでなければ、idは通常のオブジェクトを広げ、ピースは変更したい。これは主にキーのためのものでした。なぜなら、これが配列の場合、非同期呼び出しからの順序を保証することができないからです。 – JustDave