react中reducer修改数组为什么要用以下形式?

const MyReducer = (state,action)=>{  
    switch(action.type){  
        case 'add':  
            const {list} = state  
            const updatedDate = [{  
                content: action.val,  
                state:false  
  }]
            const updatedList = list.concat(updatedDate)  
  
            return {  
                ...state,  
                list: updatedList  
            }
            
        case 'del':  
            return {  
                ...state  
            }  
        default:  
            return state  
    }  
}

以上concat方式是可行的
但是使用push的方式,如下

...
const updatedDate = {  
    content: action.val,  
    state: false  
  }  
const updatedList = list.push(updatedDate)  
            return {  
                ...state, 
...

list:[...arr]数组会改错,这是什么原因呢?

阅读 2.2k
1 个回答

concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
push方法还是原数组

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题