Reactjs 即使我已经使用React Routing进行了身份验证,我的登录表单仍会显示?
我在我的应用程序中使用redux saga,我有一个登录表单,当我通过身份验证时,我使用重定向组件移动到应用程序,我在更改我的Reactjs 即使我已经使用React Routing进行了身份验证,我的登录表单仍会显示?,reactjs,authentication,redux,react-router,redux-saga,Reactjs,Authentication,Redux,React Router,Redux Saga,我在我的应用程序中使用redux saga,我有一个登录表单,当我通过身份验证时,我使用重定向组件移动到应用程序,我在更改我的connectedUser状态后当然会这样做,就像这样: const initialState = { loading: false, user: {}, status: "" }; 身份验证时,我的状态更改为状态:“AUTH”和用户:{//user data},这就是我重定向到应用程序组件的方式,这就是我的身份验证组件呈现方法的样子: render() {
connectedUser
状态后当然会这样做,就像这样:
const initialState = {
loading: false,
user: {},
status: ""
};
身份验证时,我的状态更改为状态:“AUTH”
和用户:{//user data}
,这就是我重定向到应用程序组件的方式,这就是我的身份验证组件呈现方法的样子:
render() {
if (this.props.connectedUser.status === "AUTH") {
return <Redirect to="/" />;
}
return MyLoginForm
}
render(){
if(this.props.connectedUser.status==“AUTH”){
返回;
}
返回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);
功能应用程序(道具){
返回(
);
}
const msp=state=>({language:state.language});
导出默认连接(msp,null)(应用程序);
这可以正常工作,断开按钮也可以正常工作,但是当我被重定向到我的应用程序时,问题就出现了(意思是这个路由“/)
我希望当我刷新页面时,我不会被重定向到身份验证页面,为什么我要去那里?很明显,我的状态再次是初始状态,状态再次是“”
我不是在问代码,而是一个想法,如何实现这一点
我试图将该状态放在本地存储中,但我觉得这不是一个好的做法,而且我发现了一个问题,因为如果我更改本地存储,那么我将不得不重新呈现组件,以便验证条件
I want that when I refresh the page, I don't get redirected to the authentification page, Why I am going there ? it is obvious that my state is the initial state again, the satus is "" again.
当然!刷新页面将再次显示初始状态
首先,您需要在登录后存储当前身份验证。我建议你使用
接下来,在身份验证组件中,您应该调度一个操作以获取当前身份验证并更新状态