在reducers中,我們總是使用Object.assign({},state,newState)
來保存狀態。但assign()
不支持deepcopy,因爲此方法只複製多級對象的引用。這是我在程序中的代碼。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
發生變化時,state.menuList
會在方法assign()
工作之前立即更改嗎?
我聽說,這其實是非常快,因爲它本身 – user3413723
實施雖然答案是不是有些原生React過程,這個過程一直是像Angular JS 1類似的東西被接受的答案(由於性能和簡潔)。 Upvoted –
小心使用此方法雙向轉移日期的問題。 –