Home > Net >  How do you pass data when using the navigate function in react router v6
How do you pass data when using the navigate function in react router v6

Time:10-26

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, use navigate(to, { state }). You can think of the first arg to navigate as your and the other arg as the replace and state props.

To access the route state in the consuming component use the useLocation React hook:

const { state } = useLocation();
  • Related