So habe ich versucht, die Reaktion-native Navigation zu bekommen, ich habe viele Beispiele online geschaut, aber ich verstehe immer noch nicht ganz, was ich falsch mache.Wie funktioniert die React-Native Navigationsleiste
Mein Beispiel lose auf einer anderen basiert i auf Stackoverflow gefunden:
react-native Navigator.NavigationBar - where are the docs?
ich nicht in der Lage bin, um herauszufinden, wie Variablen in der Navigationsleiste für Wert zu übergeben wie ‚route.title‘ und "route.leftButton".
Wenn ich die App zum ersten Mal lade, scheint alles in Ordnung zu sein. Es holt die Daten von der Eigenschaft Navigator.initialRoute, aber wenn ich im Debug-Modus auf die linken oder rechten Schaltflächen klicke und den Wert der Route überprüfe, kann ich sehen, dass es ein Objekt ist, das nur eine einzige Eigenschaft 'id' enthält ist auf 'undefiniert' eingestellt.
Ich habe die Dokumentation angeschaut und ich denke, es könnte zu kurz sein, um es vollständig zu verstehen. jede Anleitung dazu wird geschätzt.
danke.
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
Navigator,
TouchableOpacity
} from 'react-native';
var NavigationBarRouteMapper = {
LeftButton: function(route, navigator, index, navState){
return(
<TouchableOpacity onPress={() => navigator.pop()}>
<Text>{ route.leftButton }TestLeft</Text>
</TouchableOpacity>
)
},
Title: function(route, navigator, index, navState){
return(
<Text>{ route.title }</Text>
)
},
RightButton: function(route, navigator, index, navState){
debugger;
return(
<TouchableOpacity onPress={() => navigator.push({id: 'PageTwo', title:'page222'})}>
<Text>{ route.rightButtonAction }TestRight</Text>
</TouchableOpacity>
)
}
}
var PageOne = React.createClass({
render(){
return (
<View>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
<Text>you are on page 1</Text>
</View>
)
}
});
var PageTwo = React.createClass({
render(){
return (
<View>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
<Text>you are on page 2</Text>
</View>
)
}
});
class testApp extends Component {
renderScene(route, nav) {
switch (route.id) {
case 'PageOne':
return <PageOne navigator={ nav } leftButton={ "Back" } title={ "PageOne111" } rightButtonAction={"PageTwo"} />
case 'PageTwo':
return <PageTwo navigator={ nav } leftButton={ "Back" } title={ "PageTwo222" } rightButtonAction={"PageOne"} />;
}
}
render() {
return (
<Navigator
initialRoute={{ id: 'PageOne', title: 'PageOne' }}
renderScene={ this.renderScene }
configureScene={(route) => {
if (route.sceneConfig) {
return route.sceneConfig;
}
return Navigator.SceneConfigs.FloatFromRight;
}}
navigationBar={
<Navigator.NavigationBar
routeMapper={ NavigationBarRouteMapper }
/>
}
/>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
AppRegistry.registerComponent('testApp',() => testApp);
danke. Dieser Artikel sieht umfassend aus. Ich werde meinen Kommentar mit der Lösung aktualisieren, wenn ich es zur Arbeit bekomme. – X0r0N
ich verstehe immer noch nicht die Navigationsleiste. Ich verstehe, um die Daten in die Navigation (die irgendwo in den Szene-Seiten wütet), aber immer noch nicht sicher, wenn die Variablen in der renderScene() -Funktion nicht als Eigenschaften des Route-Objekts in NavigationBarRouteMapper verfügbar ist. – X0r0N