我有一个使用 redux 和 react-router 的通用 React 应用程序。
我有以下几条路线:
/2016
/2015
/2014
/2013
等等
每条路线都需要来自 API 的数据。目前,我在导航组件中有 <Link>
元素分派一个异步操作 onClick
,它使用来自该路由的 API 的数据填充商店。
对于 MVP,我只是在路由更改时用新的帖子内容覆盖商店中的 post: {}
内容,这样我们就可以获得 API 上的任何新内容。
我意识到在 <Link>
按钮上设置动作调度程序并不是最佳选择,因为点击后退按钮不会重新触发动作调度程序以获取上一条路线的内容。
有没有办法让 React Router 在发生路由更改时触发调度操作? (限制它收听一组特定的路线将是一个好处)。
我意识到我应该从商店获取历史记录,但现在,通过触发动作分派来再次访问 API 以获取新内容 更容易。
干杯。
原文由 Scotty 发布,翻译遵循 CC BY-SA 4.0 许可协议
“生命周期”挂钩
onEnter
和onChange
已在 React-router 4 中删除,这使得该问题的大多数其他答案已过时。虽然我建议您使用您的组件 生命周期方法 来实现您的目标,但这里是您的问题的答案,它适用于 React-router 4。
今天有效的是使用 React 路由器的开发人员自己创建的 历史库 来监听历史变化,并从那里分派异步操作。
然后在您的应用程序中导入历史记录
资料来源: 历史库 React 路由器文档