javascript - 为什么 Object.assign 没有替换我的新对象中的键?

标签 javascript reactjs object

函数handleSave

@bind
private handleSave() {
  const { coin, balance } = this.state;
  console.log('coin', coin);
  console.log('balance', balance);

  const updatedCoin = Object.assign({
    ...coin,
    position: balance
  }, coin);

  console.log('updatedCoin', updatedCoin);
  this.props.updateCoinPortfolio(updatedCoin);
  this.props.toggle(false);
}

在第一个 console.log coin 是以下对象:

{
  availableSupply: "17572412",
  currency: "BTC",
  exchange: "",
  exchange_base: "",
  marketCap: 67651096742.34,
  name: "Bitcoin",
  percentage: 100,
  position: 1,
  price: "3849.84695",
  value: 3849.84695
}

并且余额= 2

在此日志中接下来:console.log('updatedCoin', UpdatedCoin); 我希望硬币的位置现在是 2 而不是 1。但它仍然是1

a

Object.assign 部分:

const updatedCoin = Object.assign({
  ...coin,
  position: balance
}, coin);

最佳答案

你混淆了隐喻。您或者想要分配:

const updatedCoin = Object.assign({}, coin, {position: balance});

属性(property)传播:

const updatedCoin = {
  ...coin,
  position: balance
};

您的分配代码不起作用,因为您将硬币放在您更新的对象之后,因此位置coin覆盖。 (使用分配 - 并传播 - 最后一个获胜。)

关于javascript - 为什么 Object.assign 没有替换我的新对象中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55010049/

相关文章:

javascript - 如何分离相互依赖的 redux reducer?

javascript - React-Redux:如何添加数组中的每个项目

java - 从父类(super class)继承构造函数?

javascript - 使用 javacsripts new RegExp() 函数的正面前瞻

javascript - 将数据传递给框架中的组件时有哪些最佳实践?

javascript - 如何以编程方式关闭 Material-Ui DropDownMenu

c++ - python中的对象与实例

php - 编写将 SQL 结果行转换为对象的函数

javascript - 在 Google Apps 脚本对话框中显示 PDF 查看器

javascript - 浏览图像并插入 Iframe