你可以try 两件事:
a) 在sub-StackRouters
中使用headerMode: 'none'
,而不是根路由(名为RouterComponent).理想情况下,您不需要再做任何事情,sub-StackRouters
的头将显示在根路由的头中.我想我记得以前有一个类似的方法对我有效,但我已经有一段时间没有测试过了,我认为它不太可能仍然像这样工作,但你仍然可以测试.
b) 这就是我目前在另一种情况下使用的方法.要手动包含"后退"按钮,请执行以下操作:
import { HeaderBackButton } from 'react-navigation';
const navigationOptions = ({ navigation }) => ({
headerLeft: <HeaderBackButton onPress={() => navigation.goBack(null)} />,
})
const RouterComponent = StackNavigator({
Tabs: {
screen: Tabs
},
Profile: {
screen: ProfileStack,
navigationOptions
}
},{
mode: 'modal',
headerMode: 'none',
});
如果上述解决方案不起作用,
try 将导航选项直接添加到ProfileStack定义中.
const ProfileStack = StackNavigator({
ProfileHome: {
screen: ProfileHome,
navigationOptions: ({navigation}) => ({ //don't forget parentheses around the object notation
title: 'Profile',
headerLeft: <HeaderBackButton onPress={() => navigation.goBack(null)} />
})
},
ProfileEdit: { screen: ProfileEdit }
}