Как обновить данные с помощью спред-оператора
Пытаюсь с помощью конструкции
const handle = id => {
setValue([...updated, { id: id, value: 0 }])
}
и использования спред-оператора добавить/обновить строку, но получаю дублирование строки, если значение id уже существует:
[
0: {id: 1, value: 0}
1: {id: 1, value: 0}
]
Прошу подсказать, как получить результат без дублирования, а также можно ли одновременно изменить значение value на противоположное так, чтобы получился такой результат:
[
0: {id: 1, value: 1}
]
Ответы (1 шт):
Автор решения: p1uton
→ Ссылка
Нужно найти в массиве элемент с определенным id и изменить у него значение value с 0 на 1 (или с 1 на 0):
const handle = id => {
setValue(prev =>
prev.map(item =>
item.id === id
? {
...item,
value: 1 - value
}
: item
)
)
}