Другим методом жизненного цикла является componentWillReceiveProps() который вызывается всякий раз, когда компонент получает новые свойства. Этот метод получает новые свойства в качестве аргумента, который обычно записывается как nextProps . Вы можете использовать этот аргумент и сравнить с текущим this.props и выполнить действия перед обновлением компонента. Например, вы можете вызвать setState() локально до обработки обновления.
Другим методом является componentDidUpdate() и вызывается сразу после повторного рендеринга компонента. Обратите внимание, что рендеринг и установка в жизненном цикле компонентов считаются разными. Когда страница сначала загружается, все компоненты монтируются, и здесь вызывается такие методы, как componentWillMount() и componentDidMount(). После этого, по мере изменения состояния, компоненты перерендеривают себя. Следующая задача охватывает это более подробно.
Внимание: Данный метод устарел и больше не поддерживается Реактом.
Дочерний компонент Dialog получает свойство message от своего родителя - компонента Controller . Напишите componentWillReceiveProps() в компоненте Dialog и выведите в консоли аргумент nextProps и объект this.props. Вам нужно будет передать nextProps в качестве аргумента для этого метода, и хотя можно назвать его чем угодно, назовите его nextProps. Затем добавьте componentDidUpdate() в компонент Dialog и запишите условие, в котором говорится, что компонент обновлен. Этот метод работает аналогично componentWillUpdate() , который предоставляется вам. Теперь нажмите кнопку, чтобы изменить сообщение и посмотреть консоль браузера. Порядок консольных операторов показывает порядок вызова методов.
Примечание. Вам необходимо будет написать методы жизненного цикла в качестве обычных функций, а не стрелочных функций для прохождения тестов (также нет преимуществ при написании методов жизненного цикла в виде стрелочных функций).