я использую
"react-native": "0.48.3",
"react-native-router-flux": "^4.0.0-beta.21"
Есть ли возможность скрыть панель навигации и панель вкладок в зависимости от состояния?
То, что я делаю сейчас, выглядит следующим образом:
<Scene key="scene_condition"
tabs={true}
type="reset"
tabBarStyle={styles.tabBarStyle}
tabBarSelectedItemStyle={styles.tabBarSelectedItemStyle}
navigationBarStyle={styles.navBarStyle}
titleStyle={styles.navBarTitleStyle}
lazy={true}
hideTabBar={false}
hideNavBar={true}
tabBarPosition="bottom"
labelStyle={{fontSize: 7}}
title=""
animationEnabled={false}
swipeEnabled={false}
showLabel={false}>
<Scene key="scene_condition_picture"
tabBarLabel={gettext("Pictures")}
title={gettext("Pictures")}
component={CarPicture}
type="reset"
icon={TabIcon}
iconTittleHidden
iconName="photo-camera"
leftButtonIconStyle={styles.moduleButton}
leftButtonImage={require('./img/icons/left.png')}
onLeft={(props) => requestOverview(props.request.id)}
navigationBarStyle={styles.navBarStyle}
titleStyle={styles.navBarTitleStyle}/>
<Scene key="scene_condition_damages"
tabBarLabel={gettext("Damages")}
title={gettext("Damages")}
component={Damages}
type="reset"
icon={TabIcon}
iconTittleHidden
iconName="broken-image"
leftButtonIconStyle={styles.moduleButton}
leftButtonImage={require('./img/icons/left.png')}
onLeft={(props) => requestOverview(props.request.id)}
navigationBarStyle={styles.navBarStyle}
titleStyle={styles.navBarTitleStyle}/>
</Scene>
Таким образом, это основной компонент маршрутизатора, и там у меня есть два компонента-вкладки. В компоненте scene_condition_picture я хочу показывать navBar и tabBar в зависимости от состояния. Таким образом, мой код выглядит следующим образом:
constructor(props) {
super(props);
this.state = {
showCamera: false
};
}
а затем в методе render
что-то вроде этого:
render(){
if(this.state.showCamera){
return <CameraApp cameraData={this.state.data} hideCamera={this.hideCamera.bind(this)} navData={this.props}/>;
}
return (
<View>
<TouchableHighlight onPress={() => this.setState({showCamera: true})}><Text>Show camaer</Text></TouchableHighlight>
</View>
)
}
Я хочу скрыть navBar
и tabBar
, если отображается компонент CameraApp
. Таким образом, я попытался с Actions.refresh
внутри componentDidMount
в CameraApp следующим образом:
componentDidMount(){
Actions.refresh({hideNavBar: true, hideTabBar: true});
}
Но это не работает.
Если я зарегистрирую реквизиты в компоненте scene_condition_picture
, я увижу, что эти реквизиты в порядке (hideNavBar: true, hideTabBar: true
), но они не скрыты.
Есть идеи?