我的本机应用程序中有2个导航器。
我正在尝试有条件地在App.js中使用它们
我在一个屏幕上设置了项目,然后我试图这样做
export default function App() {
const logedStatus = AsyncStorage.getItem('logedIn').then(logedIn => logedIn)
return (
<Provider store={store}>
{logedStatus.length === 0 ? <Navigator /> : <LogedInNav/>}
<Snackbar />
</Provider>
);
}
无论我尝试启动应用程序多少次,它总是呈现logedInNav导航,我很困惑,如果您不自己清除它,存储区将永远不会为空吗?还是我做错了什么?
答案 0 :(得分:1)
您需要使用state和useEffect
import {useState,useEffect} from 'react'
export default function App() {
const[logedStatus,setlogedStatus])useState(false)
useEffect(()=>{
let mounted=true;
AsyncStorage.getItem('logedIn').then(logedIn =>{
if(mounted) setlogedStatus(logedIn)
})
return()=>{mounted=false;}
},[])
return (
<Provider store={store}>
{logedStatus.length === 0 ? <Navigator /> : <LogedInNav/>}
<Snackbar />
</Provider>
);
}