1

Async Storage のキーに基づいて初期ルートを動的にレンダリングしたいと考えています。それを行う方法はたくさんありますが、私の場合、何も機能していません。これが私のナビゲーターファイルです。

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() で asyncStorage を使用するには、次のようなことをしなければなりませんでした

const getRoute = async()=>{
  var initialRouteName = await AsyncStorage.getItem('screen');
  return initialRouteName;
}

しかし、非同期を使用すると、最初の getRoute 関数 (非同期の関数) で返されるように、関数は文字列ではなくオブジェクトを返します。次のエラーが表示されます。

ここに画像の説明を入力

4

0 に答える 0