我想知道使用最新版本的react-router
订阅浏览器历史记录更改的最佳模式是什么。我正在阅读当前的documentation,但它看起来是唯一一个通过明确检索<Match/>
容器传递给render
函数或{{1}的道具的选项。 }}。此解决方案也在此处描述:
https://stackoverflow.com/a/41006114/2817257
但是如果我想以干净的方式在组件树中更深入地获取路由参数呢?
我在想的是创建一个容器组件,从上下文中检索component
并订阅位置更改。但是,对于当前版本router
,即使4.0.0-alpha.6
对象已在上下文中,它也只包含以下方法:
这不是很有希望,因为看起来router
根本没有暴露router
对象。也许还有一些其他对象被添加到上下文中可能会有所帮助?
答案 0 :(得分:0)
react-router
文档已关闭ATM,但在第3版中,您可以将an onUpdate
function作为道具传递给Router
组件,以侦听路由器状态更改。
其他选项是导入browserHistory
,这是history
实现的(再次v3知识,因为v4文档已关闭)并使用listen
订阅历史记录更改,就像这样
import { browserHistory } from 'react-router'
browserHistory.listen((location, action) => {
// do whatever you need here
})