需要 return 来自 asyncstorage 的值

need to return value from asyncstorage

你好开发者,我在 React Native 中使用 AsyncStorage 我是这样使用的:

const AppLanguage = createStackNavigator({
    ChooseLanguage: {
        screen: ChooseLanguage,
    },
    AppIntroScreen: {
        screen: AppIntroScreen,
    },
}, {
        headerMode: 'none',
        cardStyle: {
            backgroundColor: "#ffffff",
        },
        navigationOptions: {
            headerVisible: false,
        }
    });

retrieve = () => AsyncStorage.getItem('first').then(value => {
    return value;
});

console.log(retrieve()) //return promise but need to extract value from asyncstorage

AppRegistry.registerComponent(appName, () =>
    retrieve() == 'true' ? AppIntroScreen:AppLanguage //problem here value not extracted from asyncstorage
)

我在这里使用检索方法获取键的值='first' 所以如果键等于 'true' 它首先打开 AppIntroScreen 否则它首先打开 ChooseLanguage 屏幕所以请帮忙!

您可以使用 await 来处理异步操作。

var value = await AsyncStorage.getItem('first');
console.log(value);

您的解决方案似乎也有效,请在 then 语句中执行您的代码。

您不能像 AppRegistry 那样使用应用程序,因为它无法识别屏幕或导航。 在 asynccomponent 中创建一个名为 entry 的新屏幕并安装 运行 您的 await retrieve 函数并根据它导航到正确的屏幕。