почему mapStateToProps будет перерисовываться, то есть вызывать render () в Component - PullRequest
0 голосов
/ 19 декабря 2018
  • Я думаю, что в реагирующем фрейме вид меняется с помощью компонента state,

  • , поэтому я думаю, когда mapStateToProps запускается, и компонент получаетnew store's state,

  • , что означает props изменения компонента.

  • в соответствии с react кадром, в этом случае представление не будет перерисовано, если this.setState не будет вызвано

1 Ответ

0 голосов
/ 19 декабря 2018

Я приведу один пример.

1) Сначала вы загружаете свой компонент

2) Вы вносите изменения в свой компонент,таким образом, изменяя ваше состояние притока для этого компонента

Теперь, если вы хотите увидеть новые реквизиты, связанные с этим компонентом, вы увидите их в вашем методе render ().Это связано с тем, что компонент реагирует автоматически, если реквизиты изменились (как упоминал Питер Амбрус).Дело в том, что если вы хотите использовать эти новые реквизиты вне вашей функции рендеринга, вам придется обновить свои реквизиты (или ваше локальное состояние).

В этом случае вам следует использовать getDerivedStateFromProps (новый componentWillReceiveProps),например:

constructor(props) {
  super(props);
  state = {
    stateExample: this.props,
  }
}

static getDerivedStateFromProps(nextProps, prevState) {
  if(nextProps.stateExample !== prevState.stateExample) {
    return { stateExample: nextProps.stateExample }
  } else return null;
}

Это обновит ваше локальное состояние новыми реквизитами, которые вы только что изменили в своем магазине приставок.

...