反应更新斗争

时间:2015-05-25 19:07:53

标签: javascript reactjs

我很难理解如何更新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]}});

但是我做错了什么不成功?

由于

1 个答案:

答案 0 :(得分:1)

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