我正在尝试在React Navigation StackNavigator
Header
中实现自定义后退按钮。
这有效:
static navigationOptions = ({ navigation }) => {
return {
title: '...',
headerStyle: {
...
},
headerTitleStyle: {
...
},
headerLeft: <BackButton onPress={() => navigation.goBack()}/>,
}
};
但是现在我想在无处可回的时候隐藏后退按钮。我通过查看当前场景的索引找到default header does this,并在索引=== 0时隐藏它。
但scenes
堆栈是否提供给navigationOptions
?如果是的话,它在哪里?还是有另一种方法可以做到这一点吗?
答案 0 :(得分:1)
有两种方法可以做到这一点:
在状态管理中保存导航堆栈信息(我认为您至少可以轻松找到Redux和MobX的教程)
navigation
包含对象state
,其中包含有关路线的信息。如果routeName
与您的初始路线匹配,那么很明显您就是第一个场景。
如果其中任何一个匹配,那么您只需将headerLeft
设置为 null 。
答案 1 :(得分:0)
我在withNavigation
组件本身使用BackButton
解决了这个问题。这似乎给了我传递给navigation
的{{1}}对象上没有的信息。
navigationOptions