是否可以使用React Navigation在一个屏幕上呈现两个标题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以使用React Navigation在一个屏幕上呈现两个标题?相关的知识,希望对你有一定的参考价值。
我正在用React Native编写一个iPad / android平板电脑应用程序,我正在使用React Navigation进行导航。
我收到的模拟有一个屏幕,它被分成两半(横向模式),有两个不同的标题。有可能通过反应导航来实现这一目标吗?
我试过的是在屏幕的导航选项中设置header: null
,然后在该分屏上渲染两个组件,每个组件都将React Navigation的Header
组件作为第一个子组件。这在某种程度上不起作用(标题不会被渲染)。
答案
就像你在source of Header
中看到的那样,如果header选项为null,它就不会呈现:
_renderHeader(props) {
const { options } = props.scene.descriptor;
if (options.header === null) {
return null;
}
...
}
因此手动使用Header
组件将无法正常工作。
您可以创建自己的标题组件,标题和“后”可触摸。如果设计师给你一个模拟,我认为Header的样式必须与原始的Header组件完全不同:)
您的组件可能如下所示:
export default class MyCustomHeader extends Component {
handlePress = () => {
const { navigation } = this.props;
navigation.goBack(); // or .navigate() to whatever you want
};
render() {
return (
<View>
<TouchableHighlight onPress={this.handlePress}>
<some-icon>
</TouchableHighlight>
<Text>My title</Text>
</View>
);
}
}
当然有合适的造型:)
以上是关于是否可以使用React Navigation在一个屏幕上呈现两个标题?的主要内容,如果未能解决你的问题,请参考以下文章
使用 React Navigation 导航堆栈时重新渲染组件
React-navigation tabbar 中间的大图标
我可以将 wix/react-native-navigation 创建的根组件包装在 ApolloProvider 组件中吗
使用KeyboardAvoidingView时,react-navigation标题后面的内容