/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ import React, {Component} from 'react'; import {Platform, StyleSheet, Text, View,TouchableOpacity} from 'react-native'; import { StackNavigator } from 'react-navigation'; import TestC from './TestC'; const instructions = Platform.select({ ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu', android: 'Double tap R on your keyboard to reload,\n' + 'Shake or press menu button for dev menu', }); type Props = {}; class TestBA extends Component<Props> { static navigationOptions = { tabBarVisible: false, // 隐藏底部导航栏 header:null, //隐藏顶部导航栏 }; constructor(props){ super(props); this.state={ rtnValue :'return TestC' }; } render() { return ( <View style={styles.container}> <TouchableOpacity onPress={()=>this.toC()}> <Text style={styles.welcome}>{this.state.rtnValue}</Text> </TouchableOpacity> <Text ref='text0' style={styles.instructions}>To get started, edit App.js</Text> <Text style={styles.instructions}>{this.state.rtnValue}</Text> </View> ); } toC(){ this.props.navigation.navigate('TestC',{ //传递给下一页面 id:10, refresh:(data) => this.refreshBValue(data) //refresh接收数据,放给一个View的函数数据 }); } refreshBValue(data){ // alert("refreshBValue"); this.refs.text0.setNativeProps({style:{color:'blue'}});//快速刷新样式 // alert(data); this.setState({ rtnValue:data }); } } const RockStack = StackNavigator( { TestBA:TestBA, TestC:TestC }, { initialRouteName:'TestBA' } ); export default class TestB extends Component<Props> { render(){ return( <RockStack/> ); } } 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, }, });
/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ import React, {Component} from 'react'; import {Platform, StyleSheet, Text, View,TouchableOpacity} from 'react-native'; type Props = {}; export default class TestC extends Component<Props> { static navigationOptions = { tabBarVisible: false, // 隐藏底部导航栏 header:null, //隐藏顶部导航栏 }; render() { return ( <View style={styles.container}> <Text style={styles.welcome}>Welcome Testc React Native!</Text> <Text style={styles.instructions}>{this.props.navigation.getParam('id')}</Text> {/*这个是接收数据*/} <TouchableOpacity onPress={()=>this.backToB()}> <Text style={styles.instructions}>To get started, edit App.js11111</Text> </TouchableOpacity> </View> ); } backToB(){ this.props.navigation.state.params.refresh('this is rtnvalue'); this.props.navigation.goBack(); } } 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, }, });