Вызывается ли метод `render` только тогда, когда изменяется` state` или же на `props`? - PullRequest
0 голосов
/ 05 июля 2018

Я изучал, как метод componentWillReceiveProps работает в React. Я обнаружил, что этот метод вызывается, когда любое из props изменений для компонента, и этот метод можно использовать для обновления состояния компонента с использованием метода setState, что затем приведет к повторной визуализации компонента.

Но если я не вызову setState в componentWillReceiveProps, это приведет к тому, что render не будет вызван. Другими словами, render вызывается только при изменении состояния, а не при смене реквизита?

1 Ответ

0 голосов
/ 05 июля 2018

Ваши мысли немного не в порядке.

Функция componentWillReceiveProps вызывается каждый раз, когда происходит обновление. Это функциональное состояние, которое возникает до того, как ваши изменения будут отправлены в DOM.

Итак, когда вы используете componentWillReceiveProps, вы фактически находитесь в середине дерева выполнения и определяете свое собственное поведение, которое должно произойти до того, как произойдет обновление.

Проще говоря, componentWillReceiveProps будет срабатывать каждый раз, если

  1. Для дочернего компонента, когда родительский компонент вызывает изменение реквизита дочернего компонента
  2. Сам компонент получает новые реквизиты.

EDIT

Отвечая на ваш комментарий, если какое-либо изменение вызовет повторную визуализацию компонента, все компоненты, определенные под ним, то есть все его дочерние компоненты, также выполнят повторную визуализацию

Если вам нужен подробный ответ относительно того, что вызывает такое изменение, найдите алгоритм согласования реакции

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