Trovo che gli esempi di Facebook siano semplicistici o complessi quando si dimostra come funziona il Navigatore. Basato sull'esempio di @jarek-potiuk, ho creato una semplice app che cambierà lo schermo avanti e indietro.
In questo esempio sto usando: react-native: 0.36.1
index.android.js
import React, { Component } from 'react';
import { AppRegistry, Navigator } from 'react-native';
import Apple from './app/Apple';
import Orange from './app/Orange'
class wyse extends Component {
render() {
return (
<Navigator
initialRoute={{screen: 'Apple'}}
renderScene={(route, nav) => {return this.renderScene(route, nav)}}
/>
)
}
renderScene(route,nav) {
switch (route.screen) {
case "Apple":
return <Apple navigator={nav} />
case "Orange":
return <Orange navigator={nav} />
}
}
}
AppRegistry.registerComponent('wyse',() => wyse);
app/Apple.js
import React, { Component } from 'react';
import { View, Text, TouchableHighlight } from 'react-native';
export default class Apple extends Component {
render() {
return (
<View>
<Text>Apple</Text>
<TouchableHighlight onPress={this.goOrange.bind(this)}>
<Text>Go to Orange</Text>
</TouchableHighlight>
</View>
)
}
goOrange() {
console.log("go to orange");
this.props.navigator.push({ screen: 'Orange' });
}
}
app/Orange. js
import React, { Component, PropTypes } from 'react';
import { View, Text, TouchableHighlight } from 'react-native';
export default class Orange extends Component {
render() {
return (
<View>
<Text>Orange</Text>
<TouchableHighlight onPress={this.goApple.bind(this)}>
<Text>Go to Apple</Text>
</TouchableHighlight>
</View>
)
}
goApple() {
console.log("go to apple");
this.props.navigator.push({ screen: 'Apple' });
}
}
fonte
2016-11-15 19:31:03
Grazie! Questo è esattamente ciò di cui avevo bisogno. –
Come si può inserire un'animazione quando si sostituisce lo stato del navigatore? – miduga
Guarda i documenti di Navigator: "Vedi Navigator.SceneConfigs per le animazioni predefinite e maggiori informazioni sulle opzioni di configurazione della scena." - sfortunatamente è solo nel codice sorgente, non nella documentazione generata, quindi è necessario scaricare il codice React Native (lo si ottiene nel progetto già scaricato come dipendenza) e guardare lì. –