在减速器中,我们总是Object.assign({},state,newState)用来保存状态.但是assign()不支持deepcopy,因为这种方法只复制多级对象的引用.这是我在程序中的代码.
const menuListState={
menuList: {},
menuListLoading:false
}
function getMenuList(state=menuListState,action=defaultAction){
switch(action.type){
//menuList begin
case actions.GET_MENULIST_SUCCESS:
return Object.assign({},state,{
menuList:action.data,
menuListLoading:false
});
default:
return state;
}
}Run Code Online (Sandbox Code Playgroud)
该属性menuList是一个多级对象.而当action.data改变时,会state.menuList在方法assign()工作之前立即改变吗?