介绍
其他组件需要的时候直接 route={this.props.route} navigator={this.props.navigator}
有其他按钮跳转的时候,像listview需要传值
onPress={this._pressRow.bind(this,rowData)}
这个时候就需要
1 2 3 4 5 6 7 8 9
| _pressRow(info){ this.props.navigator.push({ name:'详情', component:List_Detail, params:{ info:info } }) }
|
获取的时候:
{this.props.route.params.info}
下面是首页路由:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| /*index.android.js*/ /** *页面路由 */ import React , {Component} from 'react'; import { AppRegistry, BackAndroid, Navigator, } from 'react-native'; import Home from './src/components/home/home'; var _navigator; class Routes extends Component{ configureScene(){ return Navigator.SceneConfigs.FloatFromRight; } renderScene(route,navigator){ _navigator = navigator; let Component = route.component; return <Component route={route} navigator={navigator} /> } render(){ return( <Navigator initialRoute={{name:'主页',component:Home}} configureScene={this.configureScene.bind(this)} renderScene={this.renderScene.bind(this)} /> ) } } //监听硬件的back键操作 BackAndroid.addEventListener('hardwareBackPress', function() { if(_navigator == null){ return false; } if(_navigator.getCurrentRoutes().length === 1){ return false; } _navigator.pop(); return true; }) AppRegistry.registerComponent('fanrenjiajiao', () => Routes);
|