My code is:
...
...
com1.js
Pass data through an Input,
import React, { Component } from 'react';
import { Text, View, TextInput, TouchableOpacity } from 'react-native';
import { Actions } from 'react-native-router-flux';
export default class Com1 extends Component {
state = { text: '' };
render() {
return (
<View>
<TextInput
value={this.state.text}
onChangeText={text => this.setState({ text })}
/>
<TouchableOpacity onPress={this.onPressNext.bind(this)}>
<Text>Get Data</Text>
</TouchableOpacity>
</View>
);
}
onPressNext() {
Actions.Com2({text: this.state.text });
}
}
To get value in the second Page
export default class Com2 extends Component {
render() {
return (
<View>
<Text>
{this.props.text}
</Text>
</View>
);
}
}
You can refer to this link: https://react-native-solutions.blogspot.com/2018/07/passing-data-between-screens-in-react.html
Use push method as below:
Actions.push('your key name',{prop you want to pass})
It pushes the scene to the stack, performing a transition to the new scene.
In addition to that, (and for those in the comments who said it didn't work) you may want to try below. When you pass the
Actions.com2({text : 'Hello World'});
Com2 should pass 'props'
const Com2 = (props) => {
return ( <View ...
{props.text}
... />
);
you can use Actions with props
onPress={() => Actions.com2({title: 'some title'})}
and then in com2 you can retrieve the data like that
this.props.title
or you can use push property
Actions.push('com2',{title: 'some title' } );
then retrieve it in com2 also like that
this.props.title
You can pass data like this:
Actions.com2 ({text: 'Hello World'})
You can recover your data in com2 like this:
this.props.text
You can go to the next tutorial for more information:
https://github.com/aksonov/react-native-router-flux/blob/master/docs/v3/MINI_TUTORIAL.md