Я нахожу, что примеры Facebook являются либо упрощенными, либо сложными при демонстрации работы Navigator. Основываясь на примере @ jarek-potiuk, я создал простое приложение, которое будет переключать экраны взад и вперед.
В этом примере я использую: 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);
приложение/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' });
}
}
приложение/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' });
}
}
Спасибо! Это именно то, что мне нужно. –
Как вы могли бы добавить анимацию при замене состояния навигатора? – miduga
Посмотрите на документы Navigator: «Смотрите Navigator.SceneConfigs для анимации по умолчанию и более подробную информацию о настройках конфигурации сцены». - это, к сожалению, только в Исходном коде, а не в сгенерированной документации, поэтому вам нужно загрузить React Native code (вы получите его в своем проекте, уже загруженном как зависимость) и посмотрите там. –