Abhängig von der aktuellen Route, versuche ich Stile wie folgt zu ändern, bekomme aber einen Fehler: 'Route ist nicht definiert'. Wie kann ich die aktuelle Route referenzieren: route.name in der navigationBar = {}?React Native: Wie referenziere ich die aktuelle Route in Navigator navigationBar = {}?
<Navigator
configureScene={...}
initialRoute={...}
renderScene={...}
navigationBar={<Navigator.NavigationBar style={route.name == 'Home' ? styles.homeNavBar : styles.normalNavBar} .../>}
/>
UPDATE
Hier ist meine aktuelle in index.ios.js
einzurichten:
class practice extends Component {
constructor(){
super()
}
renderScene(route, navigator){
return (
<route.component navigator={navigator} {...route.passProps}/>
)
}
configureScene(route, routeStack) {...}
render() {
return (
<Navigator
configureScene={this.configureScene}
initialRoute={{name: 'Login', component: Login}}
renderScene={(route, navigator) => this.renderScene(route, navigator)}
style={styles.container}
navigationBar={
<Navigator.NavigationBar
style={route.name == 'Home' ? styles.homeNavBar : styles.normalNavBar} //This is what I am trying to achieve
routeMapper={NavigationBarRouteMapper}
/>
}
/>
);
}
}
UPDATE
class practice_style extends Component{
renderScene(route, navigator){
this._navigator = navigator
return (
<route.component navigator={navigator} {...route.passProps}/>
)
}
configureScene(route, routeStack) {...}
getNav =() => {
return this._navigator
}
render() {
const routes = this.navigator.getCurrentRoutes();
route = routes[routes.length-1];
return (
<Navigator
configureScene={this.configureScene}
initialRoute={{name: 'Home', component: Home}}
renderScene={(route, navigator) => this.renderScene(route, navigator)}
style={styles.container}
navigationBar={
<Navigator.NavigationBar
style={route.name == 'Home' ? styles.homeNavBar : styles.normalNavBar}
routeMapper={NavigationBarRouteMapper}
/>
}
/>
)
}
}
Sorry, aber zu versuchen, herauszufinden, wie man es an der Arbeit. Wie integriere ich es in das, was ich erreichen möchte? Vielen Dank! –
ok, aktualisierte Antwort. Lassen Sie mich wissen, ob dies für Sie funktioniert. – Abhishek
Schätzen Sie die schnelle Antwort! Ich habe ein UPDATE im ursprünglichen Post gemacht. Bitte schau es dir an. Also versuche ich 'route.name' zu erhalten, wenn es neu gerendert wird und basierend auf' route.name' unterschiedliche Styles für navigationBar = {} zeige, also entweder styles.homeNav oder styles.normalNavBar. In Bezug auf die Frage, wo sollte ich die 'const routes = this.navigator.getCurrentRoutes(); route = routen [routes.length-1]; 'und wie hilft' ref', das zu erreichen, was ich vorhabe? Danke Abhishek! –