2016-10-21 34 views
2

は私のコードは、どのように私はReduxの中の私の減速の一つの値を更新しない私のReduceの値をReduxで更新するにはどうすればよいですか?以下

function customMsg(state, action) { 
state = state || { 
    person: { 
     isFetching: false, 
     didInvalidate: false, 
     name: "", 
     height: "", 
    } 
}; 

switch(action.type) { 

    case ACTION_TYPES.PERSON.FETCH_PERSOn_CONTENT_SUCCESS: 
     return $.extend({}, state, { 
      person.name: action.result.name 
     }); 

    default: 
     return state; 
} 
} 

のですか? 上記は私が人物オブジェクトの名前を更新するだけの例です。 どうすればいいですか?

答えて

5

、延長クローンを作成した人の名前を設定するのjQueryを使用した:

var newState = $.extend({}, state); 
newState.person.name = action.result.name; 
return newState; 

そうでない場合は、深くあなたがlodash cloneDeep()を使用することができ、オブジェクトのクローンを作成します。

もう1つの方法は、immutableJSを使用してアプリの状態を不変として設定することです。はるかに多くのバグの "mutable"プルーフで、不変の深いネストされた値を設定する関数を提供しています。 updateIn

return state.updateIn(['person', 'name'],() => action.result.name); 

お試しください!

関連する問題