我有一个想法,也许它可以解决你的问题,怎么样如果你只是使用本地基头为您的自定义标题,并隐藏导航栏RNRF,我有一个例子:
首先是定义路线
const App =() => {
return (
<Router>
<Scene key="root">
<Scene key="nav" component={MyContainer} title="Navigation" initial={true} hideNavBar>
<Scene key="main" component={ExampleContent} title="MainPage" />
</Scene>
</Scene>
</Router>
);
}
在父场景中使用hideNavBar
来隐藏RNRF导航栏。然后你自己做头
class MyHeader extends Component{
render(){
return(
<Header>
<Left/>
<Body>
<Title>Header</Title>
</Body>
<Right />
</Header>
)
}
}
,使内容组件儿童现场
class ExampleContent extends Component{
render(){
return (
<Content>
<Text>This is some content</Text>
</Content>
)
}
}
后
,使容器包装的标题和内容
class MyContainer extends Component{
render(){
const state = this.props.navigationState;
const children = state.children;
return(
<Container>
<MyHeader />
<DefaultRenderer navigationState={children[children.length - 1]} onNavigate={this.props.onNavigate} />
</Container>
)
}
}
Default Renderer
是使孩子场景,所以您只需创建无容器内容
这个是完整的源代码:
import React, { Component } from 'react';
import { Router, Scene, DefaultRenderer } from 'react-native-router-flux';
import { Container, Header, Content, Footer, Left, Right, Body, Title, Text } from "native-base";
class MyHeader extends Component{
render(){
return(
<Header>
<Left/>
<Body>
<Title>Header</Title>
</Body>
<Right />
</Header>
)
}
}
class ExampleContent extends Component{
render(){
return (
<Content>
<Text>This is some content</Text>
</Content>
)
}
}
class MyContainer extends Component{
render(){
const state = this.props.navigationState;
const children = state.children;
return(
<Container>
<MyHeader />
<DefaultRenderer navigationState={children[children.length - 1]} onNavigate={this.props.onNavigate} />
</Container>
)
}
}
const App =() => {
return (
<Router>
<Scene key="root">
<Scene key="nav" component={MyContainer} title="Navigation" initial={true} hideNavBar>
<Scene key="main" component={ExampleContent} title="MainPage" />
</Scene>
</Scene>
</Router>
);
}
export default App;
这是该示例代码
我希望它可以为你一个解决方案的截图,谢谢:)