React Native - 从 return 获取数据

React Native - get data from return

在我的 App.js 中,我想 return 来自 AsyncStorage 的令牌和 RememberMe 常量。 '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/>
    )
}

首先你应该return一个对象:

export const getToken = async () => {
    const Token = await AsyncStorage.getItem('IN_Token');
    const ReMe = await AsyncStorage.getItem('RememberMe');
    return {Token, ReMe};
}

第二个 getToken 是一个异步函数,它return是一个你必须等待它解决的承诺

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

试试这个