React-router-dom сначала вызывает конструктор перед размонтированием компонента - PullRequest
0 голосов
/ 29 октября 2018

Я хочу, чтобы мой компонент рендерился каждый раз, когда я нажимаю на ссылку в заголовке. Поэтому я использовал реквизиты компонента в route для повторного рендеринга своего компонента.

<Route
 exact
 path="/assets"
 component={props => (<AssetsView {...props} />)}
/>

В документации указано, что

Это приводит к размонтированию существующего компонента и новому монтирование компонентов вместо простого обновления существующего компонента.

Но когда я щелкаю ссылку, сначала вызывается конструктор, а затем componentWillMount, а componentWillUnmount - последний жизненный цикл, который будет вызван.

У меня есть 2 компонента Edit и Table view, и я перемещаюсь между этими двумя компонентами с помощью response-router-dom. Когда я нахожусь в компоненте «Правка», я хочу изменить состояние притока при размонтировании на основе условия перед монтированием компонента «Таблица» и использовать измененное состояние приращения в исходном состоянии (используя конструктор) компонента «Таблица». Как этого достичь?

пример программы - https://codesandbox.io/s/kmy387l59o

Кто-нибудь сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 17 марта 2019

Начиная с React16, componentWillUnmount является асинхронным, поэтому он вызывается после следующих компонентов componentWillMount. Для более подробной информации посетите обсуждение здесь.

В React 15, ComponentWillUnmount вызывается первым перед рендерингом Следующий компонент в DOM. В текущей версии (v16) ComponentWillUnmount был вызван после монтирования следующего компонента.

...