我遇到了与React Navigation和React Native导航相关的问题。问题在于重置导航并返回主屏幕。
我在DrawerNavigator中构建了一个StackNavigator,并且主屏幕和其他屏幕之间的导航正常工作。但是问题是,导航堆栈不断增长。我不确定如何从堆栈中删除屏幕。
例如,当从主屏幕转到设置屏幕,然后再转到输入屏幕,最后再次回到主屏幕时,主屏幕在堆栈中出现两次。使用返回按钮无法退出应用程序,而是返回输入屏幕。
当再次选择主页按钮时,重置堆栈将非常好,但我不知道如何做到这一点。此处有人尝试帮助另一个遇到类似问题的人,但解决方案对我没用。
我在DrawerNavigator中构建了一个StackNavigator,并且主屏幕和其他屏幕之间的导航正常工作。但是问题是,导航堆栈不断增长。我不确定如何从堆栈中删除屏幕。
例如,当从主屏幕转到设置屏幕,然后再转到输入屏幕,最后再次回到主屏幕时,主屏幕在堆栈中出现两次。使用返回按钮无法退出应用程序,而是返回输入屏幕。
当再次选择主页按钮时,重置堆栈将非常好,但我不知道如何做到这一点。此处有人尝试帮助另一个遇到类似问题的人,但解决方案对我没用。
const Stack = StackNavigator({
Home: {
screen: Home
},
Entry: {
screen: Entry
},
Settings: {
screen: Settings
}
})
export const Drawer = DrawerNavigator({
Home: {
screen: Stack
}},
{
contentComponent: HamburgerMenu
}
)
这是抽屉式屏幕的简单示例
export default class HamburgerMenu extends Component {
render () {
return <ScrollView>
<Icon.Button
name={'home'}
borderRadius={0}
size={25}
onPress={() => { this.props.navigation.navigate('Home')}}>
<Text>{I18n.t('home')}</Text>
</Icon.Button>
<Icon.Button
name={'settings'}
borderRadius={0}
size={25}
onPress={() => { this.props.navigation.navigate('Settings')}}>
<Text>{I18n.t('settings')}</Text>
</Icon.Button>
<Icon.Button
name={'entry'}
borderRadius={0}
size={25}
onPress={() => { this.props.navigation.navigate('Entry')}}>
<Text>{I18n.t('entry')}</Text>
</Icon.Button>
</ScrollView>
}
}
我希望你能帮助我。这是导航的重要部分,如果有解决方案就太好了!