从 react-router 浏览器 History 对象获取当前页面路径
Get current page path from react-routers browserHistory object
在我的组件之外,我需要查询当前活动的 URL。我将基于此在主体(在我的反应根之外)上设置一些 类。
第一次尝试是使用
//Gets an array of class names that I can add to my body tag
getClassNames(window.location.pathname);
但是 React Router 导航时,window.location.path似乎没有更新。令人惊讶的是。
所以我想,好吧,也许我可以从 browserHistory 中获取这个
import { browserHistory } from 'react-router'
但是,唉,我也看不到从这里读取当前页面路径的方法(这个对象似乎不存在像样的 API 文档)
有什么建议吗?似乎是一个简单的问题,如果 window.location.pathname 与历史对象保持同步。
我现在知道的唯一方法是使用像
这样的监听器
import { browserHistory } from 'react-router'
browserHistory.listen(function(event) {
//manage the pathname on your own
console.log(event.pathname);
});
不理想,但即使查看历史使用的 DOMUtils 库,它的 getWindowPath() 实现包括路径名、搜索和哈希字符串。但是,在 GitHub 上为您寻找文档 link,历史记录似乎在大约 20 天前收到了 v3 重写,现在包括可能对您有用的 pathUtils module。
好的,至少从 2017 年开始,可以通过
获得位置
browserHistory.getCurrentLocation();
const location = browserHistory.getCurrentLocation();
console.log(location);
在我的组件之外,我需要查询当前活动的 URL。我将基于此在主体(在我的反应根之外)上设置一些 类。
第一次尝试是使用
//Gets an array of class names that I can add to my body tag
getClassNames(window.location.pathname);
但是 React Router 导航时,window.location.path似乎没有更新。令人惊讶的是。
所以我想,好吧,也许我可以从 browserHistory 中获取这个
import { browserHistory } from 'react-router'
但是,唉,我也看不到从这里读取当前页面路径的方法(这个对象似乎不存在像样的 API 文档)
有什么建议吗?似乎是一个简单的问题,如果 window.location.pathname 与历史对象保持同步。
我现在知道的唯一方法是使用像
这样的监听器import { browserHistory } from 'react-router'
browserHistory.listen(function(event) {
//manage the pathname on your own
console.log(event.pathname);
});
不理想,但即使查看历史使用的 DOMUtils 库,它的 getWindowPath() 实现包括路径名、搜索和哈希字符串。但是,在 GitHub 上为您寻找文档 link,历史记录似乎在大约 20 天前收到了 v3 重写,现在包括可能对您有用的 pathUtils module。
好的,至少从 2017 年开始,可以通过
获得位置browserHistory.getCurrentLocation();
const location = browserHistory.getCurrentLocation();
console.log(location);