Навигация к модальному маршруту и от него login
(LoginModal
) базового компонента страницы list
(List
) не будет отключена. То, что хорошо.
Но завершение страницы List
в CSSTransition
всегда приводит к непреднамеренному отключению этого компонента List
.
Даже в документации react-transition-group
написано: По умолчанию дочерний компонент остается смонтированным после того, как он достигает состояния «завершено».
Я думаю, что это как-то связано с одновременно появляющимися и исчезающими компонентами.
Здесь вы можете увидеть заявленные маршруты:
...
<TransitionGroup>
<CSSTransition
key={location.key}
classNames="fade"
timeout={1000}
>
<div>
<Switch location={location}>
<Route exact path="/items/:id([0-9]+)" component={Item} />
<Route path="/items" component={List} />
<Route render={() => <div>Not Found</div>} />
</Switch>
<Route exact path="/items/login" component={LoginModal} />
</div>
</CSSTransition>
</TransitionGroup>
...
Без размонтирования без CSSTransition
: https://codesandbox.io/embed/l57510x9jq
Нежелательные размонтирования с CSSTransition
: https://codesandbox.io/embed/m0qo4xvwj
Есть ли способ предотвратить такое поведение и последующие перемонтирования и обработки вызовов?