当前位置:  开发笔记 > 编程语言 > 正文

使用spread运算符更新对象的多个属性

如何解决《使用spread运算符更新对象的多个属性》经验,为你挑选了1个好方法。

我在reducer中有一个状态如下:

// The current source/selection
const selection = {
  timespan: "-3660",
  customTimespan: false,
  pathIds: [''],
  source: undefined,
  direction: 0,
  appClassIds: []
};

我现在想要的是更新多个属性(timespan和customTimeSpan),类似这样(但这不起作用):

{ ...state, 
  {
      timespan: action.timespan.value,
      customTimespan: action.timespan.value
  } 
};

如何更新状态的多个属性?



1> finalfreq..:

您需要从那里删除额外的对象闭包

{ ...state, 
 timespan: action.timespan.value, 
 customTimespan: action.timespan.value
}

应该工作正常

如果你想在vanilla JS中做到这一点,你可以这样做:

Object.assign({}, state, { timespan: action.timespan.value, customTimespan: action.timespan.value})

我认为传播操作员更清洁,如果你有权访问它,应该走这条路.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有