#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 }}, });