I'm using "react-router-dom": "^4.2.2" but the useParams not working what should I do?
import { useParams } from 'react-router-dom';
import DATA from '../Data';
const ProductDetail = () => {
{/* Now we need a product id which is pass from the product page. */}
const proid = useParams();
const proDetail = DATA.filter(x => x.id == proid.id)
const product = proDetail[0];
console.log(product);
CodePudding user response:
As @slideshowp2 Mentioned, your react-router-dom version should be equals to or greater than 5.1
Update your to react-router-dom to the latest version using the following command
npm i react-router-dom@latest
Or update it to the specific version
npm install react-router-dom@5.1.2
CodePudding user response:
useParams
, useLocation
, useHistory
, and useRouteMatch
hooks were added since react-router
v5.1.0
For react-router-dom v4.x about how to get the URL params, there are many questions already:
For react-router-dom v5.1.0 , you can use useParams
hook to get the URL params: codesandbox, you can change the URL to https://fmw9k.csb.app/blog/joke
and see the logs in the console.