reactjs - React Navigation:嵌套堆栈和选项卡导航器
问题描述
我有一个TabNavigator
里面的StackNavigator
。我无法在选项卡本身的不同类中定义标题,因为TabNavigator
没有标题(我知道)。所以我尝试在初始化时定义它StackNavigator
。顶部出现一个按钮,但按下它会导致重定向到未定义位置的错误。可能该this.props.navigator.navigate
部分包含错误,而this
不是指我希望它指的内容,但我在任何地方都找不到正确的语法。
const NestedNavigator = createBottomTabNavigator ({
"route1" : {screen : Screen1,
},
"route2" : Screen2,
"route3" : Screen3
},
);
const Navigator = createStackNavigator ({
"routeA" : ScreenA,
"routeB" : {
screen : NestedNavigator,
navigationOptions: { headerRight: (<Button title="home" onPress={() => this.props.navigation.navigate("routeC")}/>)}},
"routeC" : ScreenB},
{
initialRouteName: "routeA",
}
);
解决方案
navigationOptions
是组件的静态属性,它不引用组件的实例,因此没有可用的道具。相反,如果我们创建navigationOptions
一个函数,那么 React Navigation 将使用包含的对象调用它{ navigation, navigationOptions, screenProps }
——在这种情况下,我们关心的是navigation
,它与传递给屏幕道具的对象相同this.props.navigation
。
navigationOptions = ({ navigation }) => {
return {
headerRight: <Button title="home" onPress={() =>
navigation.navigate("routeC")}/>
}
}
推荐阅读
- flutter - 在颤动中使用facebook登录后电子邮件为空
- c# - 何时以及如何将任何状态设置为“已过期”?
- python - Python中不同架构功能的设计
- javascript - 使用 ramda 将数组数组转换为数组对象
- android - 如何使用数字墨水下载英文模型?
- mysql - MySQL where date on right join
- terraform-provider-azure - 有没有办法使用 terraform 或 arm 模板为突触配置 git?
- javascript - 从图表js中的数据数组连接工具提示
- typescript - 在不保留额外属性的情况下将类型与子类型匹配
- flutter - 杀死它后如何接收我的应用程序日志?