React更新斗争
React update struggle
我很难理解如何更新 React 状态 -> $push 和 $unshift..
我的状态看起来像:data = { 2: [1, 2, 3], 7: [5, 3, 4] }
我需要用变量更新记录特定的对象键,并删除或添加元素到该数组中。我试过类似的东西:
var elem_id = this.props.elem_id;
var newArray = update(data, {elem_id: {$push: [4]}});
var newArray = update(data, {elem_id: {$unshift: [4]}});
但是我做错了什么没有成功?
谢谢
var newArray = update(data, {elem_id: {$push: [4]}});
将尝试将 4
推入字面键 elem_id
处的数组;也就是说,elem_id
是一个对象字面量键,不是被变量的内容替换elem_id
.
如果您使用的转译器支持 ES6 的计算 属性 语法(如 Babel),您可以执行以下操作:
var newArray = update(data, {[elem_id]: {$push: [4]}});
如果不是,则必须创建对象,然后设置操作:
var toUpdate = {};
toUpdate[elem_id] = {$push: [4]};
var newArray = update(data, toUpdate);
我很难理解如何更新 React 状态 -> $push 和 $unshift..
我的状态看起来像:data = { 2: [1, 2, 3], 7: [5, 3, 4] }
我需要用变量更新记录特定的对象键,并删除或添加元素到该数组中。我试过类似的东西:
var elem_id = this.props.elem_id;
var newArray = update(data, {elem_id: {$push: [4]}});
var newArray = update(data, {elem_id: {$unshift: [4]}});
但是我做错了什么没有成功?
谢谢
var newArray = update(data, {elem_id: {$push: [4]}});
将尝试将 4
推入字面键 elem_id
处的数组;也就是说,elem_id
是一个对象字面量键,不是被变量的内容替换elem_id
.
如果您使用的转译器支持 ES6 的计算 属性 语法(如 Babel),您可以执行以下操作:
var newArray = update(data, {[elem_id]: {$push: [4]}});
如果不是,则必须创建对象,然后设置操作:
var toUpdate = {};
toUpdate[elem_id] = {$push: [4]};
var newArray = update(data, toUpdate);