Используя помощник неизменяемости в React, обновите несколько значений за один проход

#javascript #reactjs #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 =gt; el.name === 'bob');  let score = update(this.state.players, {  [element]: {points: {$set: 2 }},  [element]: {fouls: {$set: 1 }}  });  this.setState({ players: score})  

Ответ №1:

Причина, по которой это не работает, заключается в том, что у вас не может быть дубликатов ключей в объекте (т. Е. двух ключей [элемента]).

Я верю, что это сработает: измените свое заявление об обновлении на:

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