Javascript 如何使用Immer.js将新字段添加到reducer中?

Javascript 如何使用Immer.js将新字段添加到reducer中?,javascript,redux,reducers,immer.js,optional-chaining,Javascript,Redux,Reducers,Immer.js,Optional Chaining,比如说, state = { data: {} } 如何将新的嵌套字段添加到对象中? 我无法设置该字段,因为出现错误无法读取未定义的属性“date” const reducer = produce((draft, action) => { switch (action.type) { case 'ACTION_SUCCESS': draft.data.children.date = action.response; } }); 因此,我希望:

比如说,

state = {
  data: {}
}
如何将新的嵌套字段添加到对象中? 我无法设置该字段,因为出现错误
无法读取未定义的属性“date”

const reducer = produce((draft, action) => {
   switch (action.type) {
      case 'ACTION_SUCCESS':
      draft.data.children.date = action.response;
   }
});
因此,我希望:

  data: {
     children: {
        data: 'date'
     }
  }
}

正常的JS对象操作规则在这里适用。如果没有
.y
字段,你就不能写
obj.x.y.z=
——你必须先创建它。

在对象中创建新字段的最佳方法是什么?就像我说的,从代码的角度来看,这只是普通的JS。比如说
someObj.newField=123