我正在使用"react router dom":"4.2.2";但是useParams不起作用我该怎么办?
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);
如@slidowp2所述,您的react router dom版本应等于或大于5.1
使用以下命令将您的待反应路由器dom更新为最新版本
npm i react-router-dom@latest
或者将其更新为特定版本
npm install react-router-dom@5.1.2
useParams
、useLocation
、useHistory
和useRouteMatch
挂钩是从react-router
v.1.0 开始添加的
对于react路由器dom v4.x关于如何获得URL参数,已经有很多问题:
- 如何在react路由器dom v4中的组件中获取params
对于react router dom v5.1.0+,您可以使用useParams
挂钩来获取URL params:codesandbox,您可以将URL更改为https://fmw9k.csb.app/blog/joke
并查看控制台中的日志。