您好,我正在使用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
)
这里我正在使用retreive方法来获取key ='first'的值,因此,如果key等于'true',则首先打开AppIntroScreen,否则首先打开ChooseLanguage屏幕,所以请帮助!
答案 0 :(得分:3)
您可以使用await处理异步操作。
var value = await AsyncStorage.getItem('first');
console.log(value);
您的解决方案似乎也有效,请在then
语句中执行代码。
答案 1 :(得分:1)
您无法使用无法识别屏幕或导航的应用程序AppRegistry。 在asynccomponent中创建一个名为entry的新屏幕,它确实挂载了您的await检索功能,并根据该导航到右侧屏幕。