【发布时间】:2021-01-02 20:45:51
【问题描述】:
我正在尝试创建用户身份验证页面。在这里,如果令牌已经存储在安全存储中,我将尝试重定向到主页,否则重定向到登录页面。我在应用页面中指定的条件。但是,当用户身份验证为真时,当我关闭并打开应用程序时,应用程序不会重定向到主页。但是,当我点击 new user? 并返回登录页面时,它会重定向到主页。我觉得这与状态更改有关,首先页面呈现初始状态,然后呈现可能导致问题的更改状态。请在这方面帮助我。我已经粘贴了代码供参考
App.js
import React, {useState,useEffect} from 'react';
import {
SafeAreaView,
StyleSheet,
View,
Text,
StatusBar
} from 'react-native';
import { NativeRouter, Route,Redirect } from 'react-router-native';
import Login from './login';
import Register from './register';
import Main from './main';
import tokenGetter from './utils/auth';
const App = () => {
const [userAuthenticated,setFlag] = useState(false);
useEffect(()=>{
tokenGetter('token','peer','peerId').then((data)=>{
if(data){
setFlag(true)
}else{
setFlag(false)
}
}).catch((e)=>{
console.log(e)
})
},[userAuthenticated]);
return (
<NativeRouter>
<StatusBar barStyle="dark-content" />
<Route exact path="/">
{(userAuthenticated)?<Redirect to="/main" />:<Login/>}
</Route>
<Route path='/login' component={Login}/>
<Route path="/main" component={Main}/>
<Route path="/about" component={Register}/>
</NativeRouter>
);
};
const styles = StyleSheet.create({
bigBlue: {
color: 'blue',
fontWeight: 'bold',
fontSize: 30,
},
red: {
color: 'red',
},
});
export default App;
【问题讨论】:
标签: javascript reactjs react-native react-router react-hooks