En réagir natif, je veux désactiver le tiroir sur
Login
et activer le tiroir surDashboard
écran. J'ai mis en œuvre'react-native-drawer'
avecNavigator
pour naviguer entre les routes.Comment configurer « réagir-tiroirs natif » visible uniquement au tableau de bord après la connexion en réaction natif
rendre procédé comme suit:
render() {
<Drawer
ref={(ref) => this._drawer = ref}
disabled={!this.state.drawerEnabled}
type="overlay"
content={<Menu navigate={(route) => {
this._navigator.push(navigationHelper(route));
this._drawer.close()
}}/>}
tapToClose={true}
openDrawerOffset={0.2}
panCloseMask={0.2}
closedDrawerOffset={-3}
styles={{
drawer: {shadowColor: '#000000', shadowOpacity: 0.8, shadowRadius: 3},
main: {paddingLeft: 3}
}}
tweenHandler={(ratio) => ({
main: { opacity:(2-ratio)/2 }
})}>
<Navigator
ref={(ref) => this._navigator = ref}
configureScene={(route) => Navigator.SceneConfigs.FloatFromLeft}
initialRoute={{
id: 'Login',
title: 'Login',
index: 0
}}
renderScene={(route, navigator) => this._renderScene(route, navigator)}
navigationBar={
<Navigator.NavigationBar
style={styles.navBar}
routeMapper={NavigationBarRouteMapper} />
}
/>
</Drawer>
);
}
renderScene comme suit pour naviguer dans les voies:
_renderScene(route, navigator) {
navigator.navigate = self.navigate;
switch (route.id) {
case 'Login':
return (<Login navigator={navigator}/>);
case 'Dashboard':
return (<Dashboard navigator={navigator}/>);
}
}
Je vous ai écrit une méthode pour activer et tiroir désactiver à réagir -natif:
navigate(route, method){
if(route)
switch (route.id) {
case 'Login':
this.state = {drawerEnabled: false, navigationBarEnabled: false};
break;
case 'Dashboard':
this.state = {drawerEnabled: true, navigationBarEnabled: true};
break;
}
this.forceUpdate();
this.refs.navigator[method](route);
}
}
Initialement j'ai défini la propriété dans la classe et dans le constructeur, la méthode de navigation a été appelée.
state = {drawerEnabled:true, navigationBarEnabled: true};
constructor(){
super();
this.navigate = this.navigate.bind(this);
}
Ensuite, ce qui serait ainsi possible de désactiver le tiroir dans le menu Login
et activer sur Dashboard
écran.
Superbe. En fait maintenant je peux dire. J'ai fait une erreur dans ma propre stratégie. Je suis en train d'ajouter le tiroir sur différentes pages, ce qui nécessite un tiroir. – SSS