我想在react应用程序中读取并打印当前URL。现在,我正在使用“ window.location.pathname”读取URL,但想知道是否有更好的方法或某些反应方法来读取URL
答案 0 :(得分:4)
window.location.href
返回当前页面的href(URL)
window.location.hostname
返回虚拟主机的域名
window.location.pathname
返回当前页面的路径和文件名
window.location.protocol
返回使用的Web协议(http:或https:)
答案 1 :(得分:1)
如果您使用的是React Router,并且您的组件由Route
呈现,如下所示:
<Route exact path='/' component={HomeComponent}/>
该组件将自动从Route
分别接收名为history
,location
和match
的三个对象。这样一来,您可以在location.pathname
下找到您要的内容。更多信息here
如果您仍在使用React Router,并且您的组件未使用Route
进行渲染,则需要使用withRouter
,它是一个HOC,将为您提供history
,{{1 }}和location
作为组件的道具。更多信息here
如果您不使用反应路由器,则需要使用match
或window.location.pathname
或仅使用window.location.href
答案 2 :(得分:0)
如果您使用反应路由器:
const currentRoute= this.props.location.pathname
否则,您可以这样获得:
const currentRoute= window.location.pathname
href将为您提供完整的网址。
答案 3 :(得分:0)
我们可以使用 react-router-dom 包中的 withRouter 组件从 this.props
获取它,方法如下:添加到类中
import React from 'react';
import { connect } from 'react-redux';
import { Switch, Route, withRouter } from 'react-router-dom';
class Application extends React.PureComponent {
render() {
console.log(this.props)
this.props.location.pathname // we will get the pathname
return (
<div className='application'>
{Hi}
</div>
);
}
}
export default connect(mapStateToProps, actions)(withRouter(Application));
输出: