Показать сообщение отдельно
  #6 (permalink)  
Старый 15.08.2024, 16:44
Интересующийся
Отправить личное сообщение для acvafor Посмотреть профиль Найти все сообщения от acvafor
 
Регистрация: 03.08.2024
Сообщений: 13

Сообщение от ksa Посмотреть сообщение
Отнюдь!
Я не записываю "новый стейт"... Я передаю функцию, которая и вернет новый стейт. Она принимает старый стейт и должна вернуть новый.

Применение функции, меняющей стейт, бывает просто необходимо. Пример

const [val, setVal] = useState()
// ...
setVal(val + 1)
setVal(val + 1)
setVal(val + 1)
setVal(val + 1)
// результат тебя удивит ;)

Использование функции решает эту проблему

setVal(old => old + 1)
setVal(old => old + 1)
setVal(old => old + 1)
setVal(old => old + 1)
Спасибо большое тебе и документации.
"
Here, a => a + 1 is your updater function. It takes the pending state and calculates the next state from it
"
Ответить с цитированием