在 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 }},
});
您能否使用来自 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 }},
});