javascript - 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}`);
};
谢谢你
解决方案
当你使用反应功能组件时,你应该使用钩子
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")
}
}
推荐阅读
- c++ - 显式特化已被实例化
- python - 根据多个条件过滤列表项
- apache-kafka - 共同分区如何确保来自 2 个不同主题的分区最终分配给同一个 Kafka 流任务?
- c - 如何在函数中传递结构变量
- android - Kotlin - var 属性与对象副本
- python - Python中np.cov()的计算过程是怎样的?
- ios - UILabel 只有在定向后才会增长
- node.js - 我在 spec[] 内的 conf.js 文件中添加了 4 个测试用例,我必须从中运行 2 个测试用例,而无需从 conf.js 文件中删除任何测试用例
- css - 如何为自定义布局构建 CSS?
- python - 高效增长的对象池