まず、この問題がChromeコンソール、ReduxまたはJavaScriptオブジェクトに関連しているかどうかはわかりません。Redux reducerでまだ更新されていないコンソール出力状態
私は私の中に、以下の機能を持っているが+ Reduxのアプリに反応:
function InputReducer(state = [{ }], action) {
console.log('input-reducer.js', 'state', state[0], JSON.stringify(state[0]));
switch (action.type) {
case 'STORE_INPUT_VALUE':
let newState = {};
newState = state[0];
_.set(newState, action.storePointer, action.value);
console.log('input-reducer.js', 'newState', newState, JSON.stringify(newState));
return [newState];
break;
default:
return state;
}
}
私は状態が置き換えられ、代わりに更新するべきではありません知っています。今は気にしないでください。これはプロセスの途中です。
これはうまくいきませんが、私は理解できませんが、状態を更新するときにログを見ると、最初のログはnewStateと全く同じオブジェクトを返します。私が知る限り、状態を更新する関数は、ロギングが発生した時点では実行されてはならないので、これは可能ではありません。
これをさらに奇妙にするのは、オブジェクトをストリング化するときに、正しい期待値を返すことです。
私はこのように、いくつかのナンセンス状態を返すように機能を変更する場合:
function InputReducer(state = [{ a: 0 }], action) {
console.log('input-reducer.js', 'state', state[0], JSON.stringify(state[0]));
switch (action.type) {
case 'STORE_INPUT_VALUE':
let k = state[0].a + 1
let newState = {a: k};
console.log('input-reducer.js', 'newState', newState, JSON.stringify(newState));
return [newState];
break;
default:
return state;
}
}
...ログが正しくオブジェクトを表示...または私は彼らがあることを期待するように、少なくとも彼らがいるようです。
この動作に関連するものは何ですか、私はここで何が欠けていますか?
'action.storePointer'と' action.value'の値は何ですか?実際に値を更新していないか、値のパスが無効である可能性があります。 –
@MikeCまあ、パスはlogin.home.userです。値は入力からのものです。しかし、私はこれが問題だとは思わない。値は正しく更新されています。そのIMOでは、最初のログには更新された値は表示されず、古い値が表示されるべきです。 –
コンソールでそれらを比較するときは、オブジェクト参照やJSONを見ていますか?オブジェクトリファレンスは同じですが、JSONは異なるはずです。 –