レデューサーでは、常にObject.assign({},state,newState)
を使用して状態を保存します。ただし、assign()
は、ディープコピーをサポートしていません。このメソッドは、マルチレベルオブジェクトの参照のみをコピーするためです。これはプログラムのコードです。Deepcopy in React
const menuListState={
\t menuList: {},
\t menuListLoading:false
}
function getMenuList(state=menuListState,action=defaultAction){
\t switch(action.type){
\t \t //menuList begin
\t \t case actions.GET_MENULIST_SUCCESS:
\t \t return Object.assign({},state,{
\t \t \t menuList:action.data,
\t \t \t menuListLoading:false
\t \t });
\t \t default:
\t \t \t return state;
\t }
}
性menuList
は、マルチレベルのオブジェクトです。 action.data
が変更された場合、方法assign()
が機能する直前にstate.menuList
が変更されますか?
私は答えはいくつかのではないであるが、それがネイティブに – user3413723
実装されているので、これは本当に速い実際にあることを聞きましたこのプロセスは、(パフォーマンスと簡潔さのために)長い時間Angular JS 1のような類似のものに対して受け入れられた答えとなっています。アップヴォード –
このメソッドを使用して日付を丸める問題に注意してください。 –