如何从url中获取id以进行调度,而不是使用params



我正在尝试从url中检索产品id并将其传递给函数。我试过使用useParams,但我不知道如何使用它。

我认为match.params.id使用react路由器v5,他们在v6中更改了它。

这是我的ProductDetails.js

import React, { useEffect} from 'react'
import { useParams } from 'react-router-dom';
import { useAlert } from 'react-alert';
import { useDispatch, useSelector } from 'react-redux' 
import { getProductDetails, clearErrors } from '../../actions/productActions'
const ProductDetails = ({match}) => {
let params = useParams();
const dispatch = useDispatch();
const alert = useAlert();
const { loading, error, product } = useSelector(state => state.productDetails);
useEffect(() => {
dispatch(getProductDetails(match.params.id));
if(error){
alert.error(error);
dispatch(clearErrors());
}
}, [dispatch, alert, error, match.params.id]);

您应该能够使用直接检索id

const { id } = useParams();

然后与一起使用

dispatch(getProductDetails(id));

最新更新