shouldComponentUpdate не запускается после отправки Redux - PullRequest
0 голосов
/ 05 октября 2018

У меня есть компонент с такой ситуацией:

  1. Извлечение данных с сервера и обновление редуктора страницы с помощью status из pending, success или fail через отправку.

  2. mapStateToProps действительно включает страницу status со страницы редуктор , который можно проверить, поскольку ключ status присутствует в this.props.

  3. Я ожидаю, что shouldComponentUpdate сработает, как только яполучить состояние fail отправлено, но оно вызывается не , и мое приложение просто застряло в состоянии «между», и не может вызвать рендеринг, потому что это зависит от shouldComponentUpdate, чтобы запустить и сообщитьчтобы отобразить, если status - это что-то кроме pending.

Я заметил, что shouldComponentUpdate иногда запускается после нескольких отправлений, напримерон ожидает их накопления или чего-то еще, не уверен ..


Кто-нибудь знает, почему shouldComponentUpdate не запускается автоматически после моей последней отправки, когда fail staтус был отправлен?

1 Ответ

0 голосов
/ 05 октября 2018

Я выяснил, в чем проблема;внутри shouldComponentUpdate я написал:

return this.props.status != 'pending';

Так как я думал, что жизненный цикл после Redux внесет изменение в состояние, отразится на this.props, но я действительно должен был использовать nextProps.status,потому что nextProps выставляется как shouldComponentUpdate аргумент:

shouldComponentUpdate( nextProps, nextState ){
   return nextProps.status.status != 'pending';
}

Идея, лежащая в основе всего этого, состоит в том, чтобы не запускать тонну вызовов render, так как мой магазин имеет много отправок из выборок данных вфон, пока не будут получены все необходимые данные, и каждый dispatch обновлял props, поэтому метод render вызывался много раз, и я не доверял (пока еще не доверял) React, чтобы фактически не перерисовывать DOM, если нетвнесенные изменения должны отражать изменения DOM, но, тем не менее, render был запущен.

Я немного новичок, чтобы реагировать, и я не понимаю, почему render срабатывает при изменении состояния, но JSX рендера не заботятся об этих конкретных изменениях ..

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