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 関数 (非同期の関数) で返されるように、関数は文字列ではなくオブジェクトを返します。次のエラーが表示されます。