React addons update - 如何将对象插入对象数组?

时间:2016-08-24 16:36:49

标签: reactjs

我有一个由struct world : std::enable_shared_from_this<world> { struct sky {} my_sky_; /// returns a shared_ptr to my sky object, which shares its lifetime /// with this world. std::shared_ptr<sky> as_sky() { return std::shared_ptr<sky>(shared_from_this(), std::addressof(my_sky_)); } }; 表示的对象数组。如何在位置this.state.blocks的新数组中插入新对象?这是我到目前为止,但我收到错误

  

错误:update():$ push的预期目标是一个数组;得到了[对象   对象。

pos

1 个答案:

答案 0 :(得分:2)

$push将元素附加到数组的末尾,您需要$splice

this.setState({
  blocks: update(this.state.blocks, {$splice: [[pos, 0, obj]]})
})

会将obj插入this.state.blocks pos指定的索引(首先删除0项)。splice根据规范运作:

  

<强>的startIndex:   开始更改数组的索引(原点为0)。   如果大于数组的长度,实际的起始索引将是   设置为数组的长度。如果否定,将开始那么多   最后的元素。

所以只要startIndex在数组长度

内,它就能正常工作