加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 09:34:46 所属栏目:百科 来源:网络整理
导读:我想知道使用最新版本的react-router订阅浏览器历史记录更改的最佳模式是什么.我正在阅读当前的 documentation,但它看起来是唯一的选项,通过明确检索 Match /传递的道具.容器到渲染功能或组件.此解决方案也在此处描述: https://stackoverflow.com/a/4100611
我想知道使用最新版本的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
})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读