解决ReactNavigation中Navigator嵌套问题

来源:互联网 发布:根据端口号查找进程 编辑:程序博客网 时间:2024/05/21 21:46

需求:由主页MainScreen跳转到站内信页面MessageScreen,在MessageScreen存在自定义的TitleBar和3个Tab布局。

这里写图片描述

采用如下方式无法自定义Title

import { TabNavigator } from "react-navigation";class RecentChatsScreen extends React.Component {  render() {    return <Text>List of recent chats</Text>  }}class AllContactsScreen extends React.Component {  render() {    return <Text>List of all contacts</Text>  }}const MessageNavigator = TabNavigator({  Recent: { screen: RecentChatsScreen },  All: { screen: AllContactsScreen },});
const SimpleApp = StackNavigator({  Main: { screen: MainScreen },  Message: { screen: MessageNavigator },});

**解决方案:在组件中嵌套Navigator
并且需要将router进行传递,方便子页面获取navigation**

class MessageWrappingScreen extends React.Component {  render() {    return (      <View>        <TitleBar/>        <MessageNavigator  navigation={this.props.navigation}/>      </View>    );  }}MessageWrappingScreen.router = MainScreen.router;
const SimpleApp = StackNavigator({  Main: { screen: MainScreen },  Message: { screen: MessageWrappingScreen },});

文档链接:https://reactnavigation.org/docs/intro/nesting

阅读全文
0 0
原创粉丝点击