Что использовать вместо componentWillReceiveProps при сбросе внутреннего состояния - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть компонент, который должен сбрасывать ошибку в состоянии каждый раз, когда меняется новый реквизит.Мое текущее решение выглядит так:

componentWillReceiveProps(nextProps) {
    if (nextProps.teamPoints !== this.props.teamPoints && nextProps.teamPoints) {
      if (this.state.formError) {
        this.setState({ formError: '' });
      }
    }
  }

Оно просто сбрасывает formError при смене реквизита (реквизит происходит из-за избыточности).Я искал и искал лучшее решение для этого, но пока не нашел лучшего, чем этот (так как componentDidUpdate заставляет приложение перерисовать).

Что является лучшей альтернативой?

1 Ответ

0 голосов
/ 28 февраля 2019

Из блога React :

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

Так что, если ваш компонент прост, а formError является единственной частью state, предоставьте свой компонент key.Затем, когда вы хотите сбросить formError, измените значение key.Это приведет к созданию нового экземпляра компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...