我有一个像这样的TabNavigator:
<TabNavigator>
<TabNavigator.Item
selected={this.state.selectedTab === 'home'}
title="Home"
renderIcon={() => <Image source={icon1}/>}
renderSelectedIcon={() => <Image source={require('./img/slider-left.png')}/>}
onPress={() => this.setState({ selectedTab: 'home' })}
>
<MainNav selectedTab={this.state.selectedTab}
getSelectedTab = {() => this.state.selectedTab}/>
</TabNavigator.Item>
<TabNavigator.Item
selected={this.state.selectedTab === 'profile'}
title="Profile"
renderIcon={() => <Image source={icon1}/>}
renderSelectedIcon={() => <Image source={icon1}/>}
onPress={() => this.setState({ selectedTab: 'profile' })}
>
<TopicNav selectedTab={this.state.selectedTab} /*this does not work*//>
</TabNavigator.Item>
</TabNavigator>
并在 MainNav 和 TopicNav (在单独的文件中),它们都有 Navigator 堆栈, BackAndroid 处理物理反击事件,其中两个 BackAndroid 可以同时返回事件,如下所示:
BackAndroid.addEventListener('hardwareBackPress', () => {
if (_navigator.getCurrentRoutes().length === 1 ) {
return false;
}
_navigator.pop();
return true;
});
我需要了解当前显示的 TAB,并且仅响应显示 一个。如何更改父状态 selectedTab ?感谢。