Я часто видел, как некоторые начинающие разработчики React совершают одну распространенную ошибку, которая заключается в обновлении состояния React.

Как вы обновляете свое состояние, если оно зависит от предыдущего значения? Если вы используете описанный ниже метод для обновления состояния React, значит, вы делаете это неправильно!

const [counter, setCounter] = useState(0);

const updateCounter = () => {
  setCounter( counter + 1 );
}

Хотя описанный выше метод будет работать, это может быть не лучший подход.

В официальной документации React упоминается: 'this.props и this.state могут обновляться асинхронно, вы не должны полагаться на их значения для расчета следующего состояния».

Итак, каков наилучший подход?

Чтобы справиться с этой ситуацией, React позволяет нам передать функцию в setState, которая даст нам предыдущее значение состояния.

Здесь React гарантирует нам, что значение всегда корректно обновляется.

const [counter, setCounter] = useState(0);

const updateCounter = () => {
  setCounter((prevState) => {
    // some logic 
    return prevState + 1; 
  });
}

Расскажите, пожалуйста, в комментарии, сталкивались ли вы когда-нибудь с какими-либо проблемами из-за обновлений состояния? Я хотел бы услышать ваши отзывы.

Спасибо за чтение!

Вы можете посетить мой канал на YouTube JavaScript Centric и подписаться на интересные видео.

Создавайте компонуемые веб-приложения

Не создавайте веб-монолиты. Используйте Bit для создания и компоновки несвязанных программных компонентов — в ваших любимых средах, таких как React или Node. Создавайте масштабируемые и модульные приложения с мощными и приятными возможностями разработки.

Перенесите свою команду в Bit Cloud, чтобы вместе размещать компоненты и совместно работать над ними, а также ускорять, масштабировать и стандартизировать разработку в команде. Попробуйте компонуемые внешние интерфейсы с помощью Design System или Микроинтерфейсы или изучите компонуемые внутренние интерфейсы с серверными компонентами. .

Попробуйте →

Узнать больше