上面一段代码在react中很常见,进行对象解构赋值后的代码为:
return {
count: 1, count: state.count+1
}
说明:
- 由于这个返回的对象的key值相同,所以后面的把前面的替换掉了。
- 由于返回的是一个{ },所以返回的也是一个深拷贝后的对象。
进一步扩展
在React的store中的对象里,会存在很多个key、value,那么,当我们修改其中一个值并返回一个新的字典的时候,可以避免深拷贝的方法。
let state = {count: 1, count2: 2, count3: 3};
// console.log({...state,count: state.count+1});
// console.log({count: 1, count: 2})
let newState = JSON.parse(JSON.stringify(state))
newState.count2 = 32;
console.log(newState);
console.log({...state, count2: 32});
运行结果如下: