当前位置 : 主页 > 网页制作 > React >

reactjs – 在React Router v4中是否可以订阅路由更改?

来源:互联网 收集:自由互联 发布时间:2021-06-15
我想知道使用最新版本的react-router订阅浏览器历史记录更改的最佳模式是什么.我正在阅读当前的 documentation,但它看起来是唯一的选项,通过明确检索 Match /传递的道具.容器到渲染功能或
我想知道使用最新版本的react-router订阅浏览器历史记录更改的最佳模式是什么.我正在阅读当前的 documentation,但它看起来是唯一的选项,通过明确检索< Match />传递的道具.容器到渲染功能或组件.此解决方案也在此处描述:

https://stackoverflow.com/a/41006114/2817257

但是如果我想以干净的方式在组件树中更深入地获取路由参数呢?

我在想的是创建一个容器组件,从上下文中检索路由器并订阅位置更改.但是,对于当前版本4.0.0-alpha.6,即使路由器对象已经在上下文中,它也只包含以下方法:

> blockTransitions
> createHref
> replaceWith
> transitionTo

这不是很有希望,因为看起来路由器根本不暴露历史对象.也许还有一些其他对象被添加到上下文中可能会有所帮助?

react-router docs是关闭ATM的,但在v3中你可以将 an onUpdate function作为prop传递给Router组件来监听路由器状态的变化.

其他选项是导入browserHistory,这是用history实现的(再次v3知识为v4文档已关闭)并使用listen订阅历史记录更改,如下所示

import { browserHistory } from 'react-router'

browserHistory.listen((location, action) => {
  // do whatever you need here
})
网友评论