React native 抽屉式动态初始路线

React native 抽屉式动态初始路线,react-native,react-native-navigation,react-native-drawer,React Native,React Native Navigation,React Native Drawer,我希望基于异步存储中的密钥动态呈现初始路由。有很多方法可以做到这一点,但在我的情况下,我找不到任何工作。这是我的导航器文件 import { createDrawerNavigator, DrawerNavigatorItems, } from 'react-navigation-drawer'; const WINDOW_WIDTH = Dimensions.get('window').width; const getRoute = ()=>{ return "

我希望基于异步存储中的密钥动态呈现初始路由。有很多方法可以做到这一点,但在我的情况下,我找不到任何工作。这是我的导航器文件

import {
  createDrawerNavigator,
  DrawerNavigatorItems,
} from 'react-navigation-drawer';


const WINDOW_WIDTH = Dimensions.get('window').width;

const getRoute = ()=>{
  return "SignUpScreen";
}


const DrawerNavigator = createDrawerNavigator(
  {
    Home: {
      path: '/home',
      screen: Home,
    },
    SignUpScreen:{
        path: '/signup',
        screen: SignUpScreen
    },
    OtpScreen: {
      path: '/otpscreen',
      screen: OtpScreen
    }
  },
  {
    initialRouteName: `${getRoute()}`,
    contentOptions: {
      activeTintColor: `${THEME_VARIABLES.COLORS.PRIMARY_TEXT}`,
      activeBackgroundColor: 'transparent',
      inactiveTintColor: `${THEME_VARIABLES.COLORS.PRIMARY_TEXT}`,
      inactiveBackgroundColor: 'transparent',
      backgroundColor: `${THEME_VARIABLES.COLORS.PRIMARY_THEME}`,
      labelStyle: {
        fontSize: 15,
        marginLeft: 0,
      },
    },
    drawerWidth: Math.min(WINDOW_WIDTH * 0.6, 300),
    contentComponent: customContentComponent,
  }
);

export default DrawerNavigator;
要在getRote()中使用异步存储,我必须执行以下操作

const getRoute = async()=>{
  var initialRouteName = await AsyncStorage.getItem('screen');
  return initialRouteName;
}
但是当我使用async时,该函数返回一个对象而不是字符串,就像它在我的第一个getRoute函数(不带async的函数)中返回的那样。其显示以下错误:


因为getRoute返回的是以async为前缀的承诺。是的,但是当我使用async返回承诺时,我需要getRoute返回字符串,而不是promiseput某种加载屏幕组件。那就把它当作孩子。设置路径的状态,然后使其生效,然后停止加载并允许此屏幕渲染。是的,按预期进行了操作。谢谢:)因为getRoute返回承诺,因为它的前缀是async。是的,但是当我使用async返回承诺时,我需要getRoute返回字符串,而不是promiseput某种加载屏幕组件。那就把它当作孩子。设置路径的状态,然后使其生效,然后停止加载并允许此屏幕渲染。是的,按预期进行了操作。谢谢:)