Я продолжаю получать предупреждение «не изменять» при использовании SetState с «++» (например, this.state.counter ++), которое я не получаю, когда устанавливаю его с «+1». Почему это происходит?
Я получил ошибку при ИСПОЛЬЗОВАНИИ SetState.
это потому, что вы должны использовать setState, а не SetState. Что говорила ошибка?
@EternalDoubter, не могли бы вы опубликовать свой пример кода, где вы получили это предупреждение?





Выражение this.state.counter++ увеличивает this.state.counter и возвращает увеличенное значение. Выражение this.state.counter + 1 возвращает только увеличенное значение.
Чтобы избежать других коллизий, не следует устанавливать новое состояние на основе this.state. Вместо этого используйте этот код:
this.setState(old => ({counter: old.counter + 1}))
Проверить https://reactjs.org/docs/react-component.html#setstate
Спасибо. Я получил предупреждение, используя этот синтаксис.
состояние следует изменять только с помощью
setState. Поскольку вы пытаетесь установить состояние, вы можете использовать присвоение переменной, чтобы получить предыдущее значение, чтобы изменить его:let {counter} = this.state; this.setState({ counter: counter++ })Помните, что++будет увеличивать значение только после завершения операции, что стоит рассмотреть, если вы столкнетесь с другим ошибки приращения