Я создаю android приложение с реаги-навигацией . Я использую Asyncstorage
для аутентификации информации для входа. Вот мой код:
Логин. js
const Login =()=>{
const history=useHistory();
const [state,setState] =useState({
username:'',
password:'',
});
const findUser=()=>{
const data=new FormData();
data.append('username',state.username);
data.append('password',state.password);
fetch(url,{
method:'POST',
body:data
})
.then(response=>response.json())
.then(async res=>{
if(res.status==="true"){
await Asyncstorage.setItem('customer',state.username);
if(res.acType=="user"){
history.push("/user")
}else{
history.push("/owner")
}
}
});
}
return //return codes goes here
}
export default Login;
Аутентификация. js
const AuthScreen=()=>{
const[state,setState]=useState({
isLogedIn:true
});
useEffect(()=>{
async function checkLogin(){
const data=await AsyncStorage.getItem('customer');
return data;
}
checkLogin().then(name=>{
console.log((name));
if(name==null){
setState({isLogedIn:false})
}
else{
setState({isLogedIn:true})
}
console.log(state.isLogedIn)
}
)
});
if(state.isLogedIn==false){
return <Redirect to="/login"/>
}
else{
return <Redirect to="/user" />
}
}
Проблема заключается в том, что состояние isLoggedIn
не обновляет свое значение, когда значение name
( Authenticate. js) равно нулю