React Native - получить данные из возврата - PullRequest
0 голосов
/ 23 апреля 2020

в моем приложении. js Я хочу вернуть токен и константу RememberMe из AsyncStorage. Функция «Get» находится в другом файле. Я не могу прочитать данные в приложении. js из функции, и я надеюсь, что вы можете мне помочь.

Это мой код:

const. js

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

Приложение. 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/>
    )
}

1 Ответ

0 голосов
/ 23 апреля 2020

Прежде всего вы должны вернуть объект:

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

Второй getToken - это асинхронная c функция, она возвращает обещание, которое вы должны ждать, чтобы решить

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

Попробуйте это

...