私はreduxストアが正しく更新される問題を追跡していますが、コンポーネントは変更を反映していません。私は状態を変更していないことを確認するための複数の方法を試しましたが、問題は解決しません。 ()を呼び出し、私は通常Object.assignを入れ子に使用し、私のcopyState機能についてはJSON.parse(JSON.stringify(state))はredux状態の突然変異を保証していませんか?
case 'ADD_OBJECT_TO_OBJECT_OF_OBJECTS': {
newState = copyState(state);
newState.objectOfObjects[action.id] = action.obj;
return newState;
}
が、エラーを回避することはそれほど単純ではありません:私の減速は、一般的に形を取ります。テストのために、私は状態を変異ていないよ確認するために、それは関係なく、プロセスがどのように高価なの、(Reduxの)状態を変異しないことが保証方法として
const copyState = (state) => {
return JSON.parse(JSON.stringify(state));
};
を使用するのが正しいのですか?
もしそうでなければ、私が状態を変更していないことを保証するために頼ることができる他の深いコピー方法はありますか?
編集: 他の人が同じ問題を抱えている可能性があることを考慮して、私は問題を解決するようにします。
私はアクションをディスパッチしようとしていましたが、その後、行の前の行で更新されたストアからデータにアクセスしようとしました。
dispatchAction(data) // let's say this updates a part of the redux state called 'collection'
console.log(this.props.collection) // This will not be updated!
これは関係なく、それがどのように高価なの、深いクローンを行いはいhttps://github.com/reactjs/redux/issues/1543
'state'は、それはそれを変異させる' .toJSON'方法をstate' '与えることができる(しかし、信じられないほどダム)となり' copyState' –
にそのままとなります。 – Bergi