使用_.merge更新反应状态?

时间:2018-01-19 03:39:43

标签: reactjs

 this.state = {
   children: {
     1: {
       id:1,
       name: 'hello',
     }
   }
 }

我试图通过以下代码更新其中一个孩子

 // given a child

 var state = _.merge({}, state, {
   children: {
     [child.id]: child
   }
 })

这看起来很简单,但大多数SO帖子都推荐immutability helper,所以我想知道上述方法是否有任何缺陷?

2 个答案:

答案 0 :(得分:0)

注意:此方法会改变对象。(Lodash文档),即我认为你不应该使用它来返回一个新状态。

使用Object.assign方法或{...object, newFieldValue} ES6点差运算符

答案 1 :(得分:0)

试试这个

var state = Object.assign({}, state, { children: { [child.id]: child } })