首页 > 解决方案 > TypeError:无法读取未定义的属性(读取“推送”)

问题描述

错误信息

我能够使用 useNavigate 解决这个问题

let params = useParams();
  let navigate = useNavigate();
  const dispatch = useDispatch();
  const productId = params.id;
  const [qty, setQty] = useState(1);
  const productDetails = useSelector((state) => state.productDetails);
  const { loading, error, product } = productDetails;
 
  useEffect(() => {
    dispatch(detailsProduct(productId));
  }, [dispatch, productId]);
 
  const addToCartHandler = () => {
    navigate(`/cart/${productId}?qty=${qty}`);
  };
  

但页面没有显示任何内容

代码

谢谢你

标签: javascriptreactjsreact-router-dom

解决方案


当你使用反应功能组件时,你应该使用钩子

import {useHistory} from 'react-router-dom'
const App=()=>{
  const history=useHistory()
  const submit=()=>{
     history.push("/products/23")
  }
}

用于反应路由器 v6

import {useNavigate} from 'react-router-dom'
const App=()=>{
  const navigate=useNavigate()
  const submit=()=>{
     navigate("/products/23") 
  }
}

推荐阅读