Pass data in route state on the Navigate component's state prop. And to access the route state on the target routed component use the useLocation hook access it.
To pass an event and parameter onClick in React:Pass an inline function to the onClick prop of the element. The function should take the event object and call handleClick . Pass the event and parameter to handleClick .
You can pass params with the navigate
function's second argument:
onPress(user) {
this.props.navigation.navigate(
'DetailPage',
{ user },
);
}
Access them in this.props.route.params
. For example in your DetailsPage
:
<Text style={styles.myStyle}>{this.props.route.params.user.name}</Text>
https://reactnavigation.org/docs/params/
Access them in this.props.navigation.state.params
. For example in your DetailsPage
:
<Text style={styles.myStyle}>{this.props.navigation.state.params.user.name}</Text>
https://reactnavigation.org/docs/4.x/params/
In react hooks, params send in navigation using useNavigation
import { useNavigation } from '@react-navigation/native';
const navigation = useNavigation();
<Button
title="Back"
onPress={() => {
navigation.navigate('MyScreen',{name:'test'});
}}
/>
then access them using useNavigationParam
function MyScreen() {
const name = useNavigationParam('name');
return <p>name is {name}</p>;
}
See this .
It solved my problem.
this.props.navigation.navigate("**stack_Name**", {
screen:"screen_name_connect_with_**stack_name**",
params:{
user:"anything_string_or_object"
}
})
In your first page, say CountriesList
const CountriesList = ({ navigation }) => {
/* Function to navigate to 2nd screen */
const viewCountry = (country) => {
navigation.navigate('ListItemPageRoute', { name: country.country_name });
};
}
For your second page name, say ListItemPageRoute
const ListItemPageRoute = (props) => {
return (
<View style={styles.container}>
<Text style={styles.countryText}> { props.route.params.name } </Text>
</View>
);
};
'Props.route' Object will have the list of all parameters you would like to pass from one screen to another.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With