Sometimes, we want to use useNavigate
passing value to another component with react-router-dom v6.
In this article, we’ll look at how to use useNavigate
passing value to another component with react-router-dom v6.
How to use useNavigate passing value to another component with react-router-dom v6?
To use useNavigate
passing value to another component with react-router-dom v6, we can call navigate
with an object as the 2nd argument.
For instance, we write
import { Link, useNavigate } from "react-router-dom";
const ComponentA = (props) => {
const navigate = useNavigate();
const toComponentB = () => {
navigate("/componentB", { state: { id: 1, name: "sabaoon" } });
};
return (
<>
<div>
<a onClick={() => toComponentB()}>Component B</a>
</div>
</>
);
};
export default ComponentA;
to call navigate
with the "/componentB"
URL path and an object that we want to pass to the component that renders when we go to /componentB
.
Then in ComponentB
, which is rendered when we go to /componentB
, we get the values from the useLocation
hook by writing
import { useLocation } from "react-router-dom";
const ComponentB = () => {
const location = useLocation();
return (
<>
<div>{location.state.name}</div>
</>
);
};
export default ComponentB;
We call the useLocation
hook to return the object that we passed in as the 2nd argument of navigate
in ComponentA
.
And then we get the properties from the location
object.
Conclusion
To use useNavigate
passing value to another component with react-router-dom v6, we can call navigate
with an object as the 2nd argument.