在我的App.js中,我想从AsyncStorage中返回Token和一个RememberMe const。Get "函数在另一个文件中,我无法从该函数中读取App.js中的数据,希望你能帮助我。
这是我的代码。
const.js
export const getToken = async () => {
const Token = await AsyncStorage.getItem('IN_Token');
const ReMe = await AsyncStorage.getItem('RememberMe');
return (Token, ReMe);
}
App.js
export default () => {
const [isLoading, setIsLoading] = React.useState(true);
React.useEffect(() => {
setTimeout(() => {
setIsLoading(false);
}, 3000)
getToken()
}, [])
if (isLoading) {
return <Splash/>
}
if (getToken) {
return <HomeStack/>
}
return (
<AuthStack/>
)
}
首先,你应该返回一个对象。
export const getToken = async () => {
const Token = await AsyncStorage.getItem('IN_Token');
const ReMe = await AsyncStorage.getItem('RememberMe');
return {Token, ReMe};
}
第二,getToken是一个异步函数,它返回一个承诺,你必须等待它的解析。
export default () => {
const [isLoading, setIsLoading] = React.useState(true);
const [tokenObj, setTokenObj] = React.useState({});
React.useEffect(() => {
getToken().then(res=> {
setIsLoading(false);
setTokenObj(res)
})
}, [])
if (isLoading) {
return <Splash/>
}
if (tokenObj.Token) {
return <HomeStack/>
}
return (
<AuthStack/>
)
}
试试这个