Как вы заменяете componentWillReceiveProps, когда есть параметр контекста? - PullRequest
3 голосов
/ 08 ноября 2019

В реакции стандартный способ замены componentWillReceiveProps состоит в использовании либо getDerivedStateFromProps, либо getSnapshotBeforeUpdate вместе с componentDidUpdate. Как вы делаете эту замену, когда componentWillReceiveProps имеет второй параметр-контекст, и вам нужны свойства в нем?

Например, предположим, что код такой:

componentWillReceiveProps(nextProps, context) {
     if (context.href !== this.context.href) {
          const parsedUrl = url.parse(context.href, true);
          const from = parseInt(parsedUrl.query.from, 100) || 0;
          this.setState({
            from,
            more: [],
           });
     }
}

В большинстве примеров в Интернете, показывающих миграцию с componentWillReceiveProps на getDerivedStateFromProp или getSnapshotBeforeUpdate, параметр не указан componentWillReceiveProps' context параметр. Ни getDerivedStateFromProp, ни getSnapshotBeforeUpdate не имеют nextContext. Итак, как с context справляются во время миграции?

1 Ответ

0 голосов
/ 11 ноября 2019

Я все еще расследую. Пока что, похоже, ответ заключается в переходе к следующему контекстному API-методу получения контекста - https://reactjs.org/docs/context.html. Таня написала хороший учебник по теме - https://www.taniarascia.com/using-context-api-in-react/

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