解决ReactNavigation中Navigator嵌套问题

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

采用以下方式没法自定义Titlebash

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
app

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 },
});复制代码

文档连接:reactnavigation.org/docs/intro/…布局

相关文章
相关标签/搜索