我正在尝试制作一个简单的基于标签的反应原生导航应用,类似于UIExplorer中的Tabbar演示。但是,当我选择不同的选项卡时,我想要更改导航栏的标题以及左右导航栏按钮。这种导航栏行为的一个例子是“时钟”和“时钟”。 iPhone上的应用程序。
UIExplorer的Tabbar演示只是取代了页面内的视图。我尝试嵌入了一个' NavigatorIOS'作为Tabbar项的子组件,但它给出了一个错误:' Invariant Violation:onlyChild必须传递给一个孩子只有一个孩子。'。作为一种解决方法,具有手动修改导航栏标题和按钮的功能可能会起作用,但我也没有成功。
答案 0 :(得分:2)
...试
var TabBarItemIOS = TabBarIOS.Item;
var homeView = require('./App/Views/Home');
var historyView = require('./App/Views/History');
var myapp = React.createClass({
getInitialState: function() {
return {
selectedTab: 'homeTab',
};
},
render: function() {
return (
<TabBarIOS
selectedTab={this.state.selectedTab}>
<TabBarItemIOS
accessibilityLabel="Home"
title="Home"
name="homeTab"
selected={this.state.selectedTab === 'homeTab'}
onPress={() => {
this.setState({
selectedTab: 'homeTab'
});
}}>
<NavigatorIOS
tintColor='#FF6600'
initialRoute={{
title: 'Home',
component: homeView,
}}/>
</TabBarItemIOS>
<TabBarItemIOS
accessibilityLabel="History"
title="History"
name="historyTab"
selected={this.state.selectedTab === 'historyTab'}
onPress={() => {
this.setState({
selectedTab: 'historyTab',
});
}}>
<NavigatorIOS
tintColor='#FF6600'
initialRoute={{
title: 'History'
component: historyView,
}}/>
</TabBarItemIOS>
</TabBarIOS>
);
}
});