Популярные ошибки при работе с React
В блоге Alex Khomenko вышел обзор популярных ошибок при работе с React. Некоторые из них:
Изменение стейта напрямую
При обновлении не примитивных значений, таких как объект или массив, нужно предоставить другую ссылку на объект. В ином случае, React не поймет, что стейт изменился и нужно сделать ре-рендер. Для решения проблемы можно использовать спред оператор, map для изменения объектов внутри массива, новое API structuredClone или библиотеки для работы с иммутабельностью, например Immer.js.
Забыть, что обновление стейта происходит асинхронно
Часто бывает, что пытаются обратиться к значению стейта сразу после его установки:
function Counter() {
const [count, setCount] = useState(0);
const increment = () => {
setCount(count + 1);
console.log(count); // 0
};
}
Однако, значение стейта обновится только при следующем рендере. Следовательно, нет смысла сразу читать значение стейта после установки. Для решения проблемы можно использовать useEffect.
claritydev.net/blog/th…ng-react