Я новичок, чтобы реагировать на родной язык. Я делаю приложение, которое имеет вложенную навигацию.Имеет стек Навигатор-вкладка Навигатор и ящик Навигатор.Проблема в том, что я использую stackNavigator для отображения LoginScreen, и когда пользователь входит в свою учетную запись, и я пытаюсь переместить пользователя на домашний экран, он отображает пустой белый экран. Если я вернусь и снова войду в негоработает отлично.
Это код моей навигации
render() {
if (this.state.appIsReady) {
const MainTab = createStackNavigator({
auth: {
screen: AuthScreen,
navigationOptions: { //عدم نمایش استک نویگیشن در صفحه لوگین وثبت نام
header: null,
}
},
registration: {
screen: Registration,
navigationOptions: { //عدم نمایش استک نویگیشن در صفحه لوگین وثبت نام
header: null,
}
},
//Make Drawer
DrawerNavigator: {
screen: createDrawerNavigator({
Home: {
screen: createMaterialTopTabNavigator({
prices: { screen: Prices },
priceLower: { screen: PriceLower },
priceHigher: { screen: PriceHigher },
}, {
swipeEnabled:false,
animationEnabled:false,
// lazy: true,
// lazyLoading: true //Don't auto render screens
}) }
}, {
contentComponent: DrawerScreen,
drawerWidth: 300,
swipeEnabled:false,
animationEnabled:false,
})
}
}, {
navigationOptions: ({ navigation }) => ({
title: 'ReactNavigation', // Title to appear in status bar
headerLeft:
<TouchableOpacity onPress={() => { navigation.dispatch(DrawerActions.toggleDrawer()) }}>
<MenuImage style="styles.bar" navigation={navigation} />
</TouchableOpacity>,
headerStyle: {
backgroundColor: '#333',
},
headerTintColor: '#fff',
headerTitleStyle: {
fontWeight: 'bold',
},
swipeEnabled:false,
animationEnabled:false,
})
})
return (
<Provider store={store}>
<SafeAreaView style={styles.container}>
<MainTab />
</SafeAreaView>
</Provider>
);
}
return <AppLoading />;
}
, и я использую этот код на экране входа в систему, когда пользователь входит в:
componentWillReceiveProps(nextProps) {
if (nextProps.auth) {
this.setState({ loading: false })
if (nextProps.auth.loginFailed === true) {
this.dropdown.alertWithType('error',
'خطا'
, nextProps.auth.errMessage);
} else {
console.log(this.props);
// this.props.navigation.push('DrawerNavigator')
const navigateToMainScreen = NavigationActions.navigate({
routeName: 'DrawerNavigator',
action: NavigationActions.navigate({
routeName: 'prices'
})
});
this.props.navigation.dispatch(navigateToMainScreen);
}
}
}