Пустой экран при использовании вложенной навигации - PullRequest
0 голосов
/ 13 июня 2019

Я новичок, чтобы реагировать на родной язык. Я делаю приложение, которое имеет вложенную навигацию.Имеет стек Навигатор-вкладка Навигатор и ящик Навигатор.Проблема в том, что я использую 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);
  }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...