reactjs - 使用 BrowserRouter 对路由更改进行调度操作
问题描述
每次我的应用程序发生路由更改时,我都需要调度 Redux 操作。不幸的是,这些 答案不适用于我的情况,因为我必须使用BrowserRouter
instead Router
,并且BrowserRouter
不使用history
道具。还有另一种方法可以做到这一点吗?我正在使用 V4。
解决方案
Dennis 的评论给出了一个可行的解决方案,使用 React 钩子。如下创建一个新组件:
const RouteChange = withRouter(({ location }) => {
const dispatch = useDispatch();
useEffect(() => {
dispatch({ type: "AN_ACTION" });
}, [dispatch, location.pathname]);
return null;
});
并将其包含在应用程序的根目录中。每当路由更改时,将调度指定的操作。
推荐阅读
- mysql - 如何使用在表行中设置的变量使用增量循环将表连接到自身?
- python-3.x - Pandas Groupby 排除缺失的列值
- batch-file - 获取特定进程的 % CPU 和 % MEM 使用率的批处理脚本
- android - 如何在使用导航组件和 safeArgs 从回收器视图导航到片段时添加共享元素转换?
- delphi - 如何在 Delphi 中为 Pascal 安装库?
- java - 关于 Robert Sedgewick 和 Kevin Wayne 在“算法第 4 版”中第 115 页的练习 1.2.9
- sql - 如何修复 ORA-00923:在 oracle 10g 中未找到 FROM 关键字的预期错误
- javascript - 将 Vuex 状态属性设置为对象的问题
- python - 如何使用 python 在底图中绘制地磁赤道,如提及图中所示?
- angular - 从 Angular 中的 httpResponse 正文中分离数据