在 React 中使用 immutability-helper,一次更新多个值

Using immutability-helper in React, update multiple values in one pass

您能否使用来自 immutability-helper 的一个更新方法调用来更新嵌套状态中的两个或多个值?

我尝试了下面的代码,但只有最后一行 [elementIndex]: {fouls: {$set: 1 }} 得到实现。

this.state={
    players:[{points: 0, fouls: 0, name: 'bob'}, {points: 0, fouls: 0, name: 'joe'}]
}

const element = this.state.players.findIndex(el => el.name === 'bob');

let score = update(this.state.players, {
      [element]: {points: {$set: 2 }},
      [element]: {fouls: {$set: 1 }}
    });

this.setState({ players: score})

这不起作用的原因是对象中不能有重复键(即两个键 [element])。

我相信这会奏效:将您的更新语句更改为:

let score = update(this.state.players, {
  [element]: {points: {$set: 2 }, fouls: {$set: 1 }},
});