Actions.refresh в навигации по потоку реагирующего маршрутизатора в React Native

я использую

"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), но они не скрыты.

снимок экрана 09.10.2017 в 09 45 11

Есть идеи?


person Boky    schedule 09.10.2017    source источник


Ответы (1)


Теперь он отлично работает с версией 4.0.0-beta.28 и выше.

person salvi shahzad    schedule 24.10.2018