In v4 you would do a history.push('/whatever', { data }) Then the component tied to that route could read the data object by referencing the history.location.state
Now with v6 that's changed to navigate('whatever')
How do you pass data like before?
CodePudding user response:
It's similar to how it's done in v4, two arguments, the second being an object with a state
property.
navigate(
'thepath',
{
state: {
//...values
}
}
})
From the migration guide: Use navigate instead of history
If you need to replace the current location instead of push a new one onto the history stack, use
navigate(to, { replace: true })
. If you need state, usenavigate(to, { state })
. You can think of the first arg to navigate as your and the other arg as thereplace
andstate
props.
To access the route state in the consuming component use the useLocation
React hook:
const { state } = useLocation();