React Native – 从返回中获取数据

在我的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/>
    )
}

试试这个

给TA打赏
共{{data.count}}人
人已打赏
解决方案

当我在WAVE扩展结果中对离子输入标签使用clearInput属性时,出现了空按钮名称的错误。有人遇到过类似的问题吗?

2022-5-13 12:00:14

解决方案

位置超时--反应原生地理定位服务。

2022-5-13 12:00:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索