Я использую React Router и у меня есть два маршрута, которые отображают один и тот же компонент:
<Switch>
<Route path="/aaa" component={Cmp} />
<Route path="/bbb" component={Cmp} />
</Switch>
Это реализация Cmp:
class Cmp extends Component {
componentWillUnmount() {
console.log('******************* UNMOUNTED');
}
render() {
return null;
}
}
Как я и ожидал, навигация между /aaa
и /bbb
не размонтирует Cmp.
Я перехожу на крючки, поэтому переписал компонент:
function Cmp() {
useEffect(() => {
return () => {
console.log('******************* UNMOUNTED');
};
});
return null;
}
И что очень удивительно, при запуске приложения, переходя между /aaa
и /bbb
console.log, что Cmp был размонтирован.
Любая идея, как предотвратить ненужное размонтирование с помощью компонента функции и хуков?