reactjs - 浏览器后退按钮可反转到以前的 redux 状态
问题描述
我有一个来自 create-reat-app 的应用程序。带有导航菜单元素和内容元素的非常简单的应用程序。当我单击导航菜单仪表板元素中的按钮时,将加载到内容元素中。一切都很完美。然后我引入了 react-router,所以所有的变化都发生在没有刷新浏览器的情况下。到目前为止一切都很好。
然后我开始玩redux。左侧导航适用于某些业务分支(即伦敦、伯明翰)。单击一个后,其 id 将保存到 page.currentBranch 下的 redux 存储中。然后仪表板元素将根据 redux 中的内容呈现。单击每个按钮时都可以正常工作,但是当单击后退或前进按钮时,URL 会更改,但仪表板仍会显示上次单击按钮的信息,因为 redux 商店在浏览器后退或前进按钮上没有更改。
我已经尝试过连接路由器、redux first history和多篇关于此的文章,并查看了 stackoverflow 但仍然无法完成这项工作
我为此创建了我的第一个沙箱,因此您可以了解它是如何设置的。我确定我做错了什么,但不知道是什么:-)
感谢任何帮助
解决方案
使用useLocation
钩子监听位置变化。
const location = useLocation();
useEffect(() > {
//...Update redux accordingly
}, [location]);
推荐阅读
- linux - 如何在行尾减去 1 位置添加带有 sed 的文本
- python - 保存时输入函数到名称文件
- django - 将参数从视图传递到 context_processors
- python - 如何检测 Python 应用程序中的数据竞争?
- javascript - 何时以及如何在 react js 中使用分号(以及何时不使用)
- typo3 - 从新的 PageTitle 获取页面标题
- angular - 如何在目标网址中调用函数?
- ansible - 基于项目类型的字典中的 Ansible set_fact
- laravel - Laravel - 如何为 API 动态设置语言?
- flutter - 使用 StatefulWidget 标记为 @immutable 的类,实例字段不是最终的