原始代碼:
const reducers = (state=defaultState, action) => {
switch(action.type) {
case 'change':
return Object.assign({}, state, {navList: action.navList});
default:
return state;
}
}
- 數(shù)據(jù)更新正常禽笑。但是頁面沒有刷新阎毅。
正常運(yùn)行代碼
const reducers = (state=defaultState, action) => {
switch(action.type) {
case 'change':
return Object.assign({}, state, {navList: [...action.navList]});
default:
return state;
}
}
- 一眼就能區(qū)分哪里不同蜜笤。其實(shí)這個(gè)原因在于Object.assign()函數(shù)靴迫。
我一直以為它是深拷貝惕味。其實(shí)他只深拷貝一層。子對象的是淺拷貝玉锌。
使用[...object1, ...object2]也是和assign方法是一樣的拷貝方式名挥。