В реакции, когда путь маршрута другой, но тот же компонент. Как я могу предотвратить повторный монтаж?

В реактивном маршрутизаторе (v2), когда есть другой путь маршрута, но тот же компонент.

Как мы можем предотвратить повторное монтирование компонента, например, размонтирование компонента, а затем его повторное монтирование.

Это вызывает двойной вызов componentDidMount.

Когда есть запрос на подписку, мое приложение будет подписываться дважды.

Таким образом, подписанное событие будет вызываться дважды.

Как я могу это решить?


person nujabes    schedule 16.04.2017    source источник


Ответы (1)


Просто вложите свой код реактивного маршрутизатора. Как показано ниже,

  <Route component={Home}>
    <IndexRoute />
    <Route path="/" />
    <Route path="/market" />
  </Route>

Просто определите родительский тег с компонентом, который вы хотите вызвать один раз, и определите дочерний тег только с путем.

Тогда, если путь маршрута изменится с '/' на '/ market', компонент не будет перемонтирован.

Ниже приведен сценарий повторного монтирования, который может вам не понадобиться.

...

<Route component={Home} path="/" />
<Route component={Home} path="/trade" />

...

person nujabes    schedule 16.04.2017