Push to stack работает только один раз - React Native Navigation V2
Я впервые работаю с 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 ответ
Для тех, кто ищет в использовании popToRoot
скорее, чем Pop
решает это