Я использую Redx Saga в своем приложении, у меня есть форма входа в систему, и когда я аутентифицируюсь, я использую Redirect Component для перехода в приложение, я делаю это, конечно, после изменения моего состояния connectedUser
, что так :
const initialState = {
loading: false,
user: {},
status: ""
};
При аутентификации мое состояние меняется на status:"AUTH"
и user: { // user data }
, и вот как я перенаправляю на компонент приложения, и вот так выглядит мой метод рендеринга компонента аутентификации:
render() {
if (this.props.connectedUser.status === "AUTH") {
return <Redirect to="/" />;
}
return MyLoginForm
}
Мои маршруты определены во всем контейнере приложения:
function App(props) {
return (
<ThemeProvider theme={theme}>
<I18nProvider locale={props.language.language}>
<BrowserRouter>
<Switch>
<Route exact path="/" component={Application}></Route>
<Route path="/authenticate" component={Authentification}></Route>
</Switch>
</BrowserRouter>
</I18nProvider>
</ThemeProvider>
);
}
const msp = state => ({ language: state.language });
export default connect(msp, null)(App);
Это работает нормально, кнопка разъединения тоже работает нормально, но проблема возникает, когда я перенаправлен в свое приложение (имеется в виду этот маршрут "/").
Я хочу, чтобы при обновлении sh страницы меня не перенаправляли на страницу аутентификации. Почему я туда иду? очевидно, что мое состояние снова является исходным, снова состояние "".
Я не спрашиваю код, а представляю, как это реализовать.
Я пытался поместите этот статус в мой localStorage, но я не чувствую, что это хорошая практика, также я обнаружил проблему с этим, потому что если я изменю localStorage, то мне придется повторно визуализировать компонент, чтобы можно было проверить условие.