React Native - 从返回中获取数据

问题描述 投票:0回答:1

在我的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/>
    )
}
function react-native return asyncstorage
1个回答
0
投票

首先,你应该返回一个对象。

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/>
    )
}

试试这个

© www.soinside.com 2019 - 2024. All rights reserved.