Push to stack работает только один раз - React Native Navigation V2 - PullRequest
0 голосов
/ 07 января 2019

Я впервые работаю с React-Native-Navigation v2, моделируя простое приложение с тремя вкладками внизу и боковой панелью с кнопкой, которая будет переходить на четвертый экран при нажатии, имитируя выход из системы. ». На этой четвертой вкладке будет кнопка, имитирующая «логин», возвращаясь к первому экрану, который является частью стека bottomTabs.

Код у меня работает, но только один раз. После того, как я выйду из системы (перенесу новый экран в стек), я смогу снова войти в систему (вытолкнув этот экран обратно из стека). Однако, когда я пытаюсь снова выйти из системы, я не могу этого сделать. Кажется, что функциональность для перемещения в стек больше не работает.

handleLogOutPress = () => {
Navigation.push('CenterStack', {
  component: {
    name: 'navigationApp.FourthTabScreen',
    passProps: {
      text: 'Logged Out'
    },
    options: {
      topBar: {
        visible: false
      }
    }
  }
})
Navigation.mergeOptions('CenterStack', {
  sideMenu: {
    left: {
      visible: false
    }
  }
})
}


function handleLoginPress(){
  Navigation.pop('CenterStack')
}

Вот как изначально устанавливается мой стек:

  Navigation.setRoot({
  root: {
    sideMenu: {
      left: {
        component: {
          id: 'SideMenu',
          name: 'navigationApp.SideMenu'
        }
      },
      center: {
        stack: {
          id: 'CenterStack',
          children: [
            {
              bottomTabs: {
                children: [
                  {
                    component: {
                      id: 'FirstTab',
                      name: 'navigationApp.FirstTabScreen',
                      passProps: {
                        text: 'Home',
                        id: 'FirstTab'
                      },
                      options: {
                        bottomTab: {
                          icon: images[0],
                          text: 'Home',
                          iconColor: 'darkblue',
                          selectedIconColor: 'lightblue'
                        },
                        topBar: {
                          visible: false
                        }
                      }
                    },
                  },
                  {
                    component: {
                      id: 'SecondTab',
                      name: 'navigationApp.SecondTabScreen',
                      passProps: {
                        text: 'Search',
                        id: 'SecondTab'
                      },
                      options: {
                        bottomTab: {
                          icon: images[1],
                          text: 'Search',
                          iconColor: 'darkblue',
                          selectedIconColor: 'lightblue'
                        },
                        topBar: {
                          visible: false
                        }
                      }
                    },
                  },
                  {
                    component: {
                      id: 'ThirdTab',
                      name: 'navigationApp.ThirdTabScreen',
                      passProps: {
                        text: 'Share',
                        id: 'ThirdTab'
                      },
                      options: {
                        bottomTab: {
                          icon: images[2],
                          text: 'Share',
                          iconColor: 'darkblue',
                          selectedIconColor: 'lightblue'
                        },
                        topBar: {
                          visible: false
                        }
                      }
                    }
                  },
                ],
              }
            }
          ],
        },
      }
    }
  }
})

Возможно, я совершенно не понимаю, как работает push / pop, любая помощь и руководство приветствуются.

1 Ответ

0 голосов
/ 08 января 2019

Для тех, кто хочет использовать popToRoot вместо Pop, это разрешается

...