Вызов функции (redux), когда один компонент React собирается размонтировать, может быть выполнен путем вызова функции внутри componentWillUnmount
. Но мне интересно, как вызвать функцию (redux), когда два компонента React (которые находятся за отдельными URL-адресами) не смонтированы. Вот пример:
class App extends React.Component {
render() {
return (
<Router history={history}>
<Switch>
<Route component={Foo} ... />
<Route component={Bar} ... />
// Many other routes
</Switch>
</Router>
);
}
}
class Foo extends React.Component<Props, State> {
componentWillUnmount() {
if (!navigated_to_bar()) {
alert("Clear state");
}
}
}
class Bar extends React.Component<Props, State> {
componentWillUnmount() {
if (!navigated_to_foo()) {
alert("Clear state");
}
}
}
Я хочу вызывать alert
только в том случае, если пользователь ушел от обоих компонентов Foo и Bar; они могут перемещаться между этими компонентами столько раз, сколько захотят, не вызывая вызова alert
.
Я довольно гибок с точки зрения решения, которое ищу: я ожидаю, что мне понадобится смена архитектурной парадигмы. Я думал, что решение может заключаться в том, чтобы у Foo / Bar был общий родительский компонент и каким-то образом настроить маршрутизатор.