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);