Tri*_*rip 1 javascript immutability ecmascript-6 reactjs redux
如果我有一个像这样的对象:
var state = { 10: [Object], 12: [Object, Object], 13: [Object, Object, Object] }
Run Code Online (Sandbox Code Playgroud)
我想在其中一个子数组的末尾添加一个新对象,而不会改变原始对象.相反,通过ES6返回一个新对象:
我无可非议地理解不可变对象和ES6.这是我的第一次尝试,但这(显而易见的原因)不起作用.
return {
...state,
[12]:
state[12], Object
}
Run Code Online (Sandbox Code Playgroud)
有谁知道产生这个的正确语法?:
var state = { 10: [Object], 12: [Object, Object, Object], 13: [Object, Object, Object] }
^---- One extra object at the end of `12`
Run Code Online (Sandbox Code Playgroud)
听起来像你在寻找
return Object.assign({}, state, {12: state[12].concat([newObject])});
Run Code Online (Sandbox Code Playgroud)
或者使用ES6阵列扩展语法
return Object.assign({}, state, {12: [...state[12], newObject]});
Run Code Online (Sandbox Code Playgroud)
或者用实验对象传播语法
return {...state, 12: [...state[12], newObject]};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |