Я хотел бы знать разницу между следующими двумя версиями кода.Обе версии делают то же самое.
1) Здесь только переменная counter используется для получения текущего значения
const Counter = () => {
const [counter, setCounter] = useState(0);
return <button onClick={() => setCounter(counter + 1)}>{counter}</button>;
}
2) Эта версия передает функцию setCounter
const Counter = () => {
const [counter, setCounter] = useState(0);
return <button onClick={() => setCounter(c => c + 1)}>{counter}</button>;
}
Официальная документация гласит:
Если новое состояние вычисляется с использованием предыдущего состояния, вы можете передать функцию setState.Функция получит предыдущее значение и вернет обновленное значение.
Так что же не так с первым параметром?Есть ли подводные камни?