Как сделать, чтобы компонент PrivateRoute более высокого порядка наблюдал за моим состоянием loggedIn из хранилища mobx и отображал компонент Redirect, если статус loggedIn изменяется на false?
Я использую response-router-dom для управления маршрутизацией моих приложений. Чтобы иметь частные маршруты, к которым могут обращаться только зарегистрированные пользователи, я обернул стандартный компонент Route в компонент PrivateRoute без сохранения состояния, который проверяет переменную состояния mobx store loggedIn в своем методе рендеринга. В зависимости от этого статуса loggedIn (который был сделан наблюдаемым) частный маршрут рендерит либо компонент Redirect, либо компонент, который будет отображаться. Теперь я хотел сделать этот компонент наблюдателем состояния loggedIn магазинов и включить его в функцию наблюдателя mobx-реагирует.
Мой компонент PrivateRoute
export const PrivateRoute = observer(({ store, component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
store.status ? <Component {...props} /> : <Redirect to="/login" />
}
/>
));
Чего я хочу добиться, так это немедленного перенаправления пользователя на страницу входа в систему при изменении состояния на ложное, но как я пытался это сделать, теперь оно работает.