如何从 ReactJS 组件中获取完整 URL?
我想它应该是这样的,this.props.location
但它是undefined
如何从 ReactJS 组件中获取完整 URL?
我想它应该是这样的,this.props.location
但它是undefined
window.location.href
就是你要找的。
如果您需要 URL 的完整路径,您可以使用 vanilla Javascript:
window.location.href
要仅获取路径(减去域名),您可以使用:
window.location.pathname
console.log(window.location.pathname); //yields: "/js" (where snippets run)
console.log(window.location.href); //yields: "https://stacksnippets.net/js"
如果您还没有使用“react-router”,您可以使用以下方法安装它:
yarn add react-router
然后在“路由”内的 React.Component 中,您可以调用:
this.props.location.pathname
这将返回路径,不包括域名。
谢谢@abdulla-zulqarnain!
this.props.location
是一个 react-router 功能,如果你想使用它,你必须安装。
注意:不返回完整的 url。
window.location.href
是你所需要的。但是,如果您正在使用React路由器,您可能会发现检查useLocation和useHistory钩子很有用。两者都创建了一个具有您可以读取的路径名属性的对象,并且对一堆其他东西很有用。这是一个解释react-router钩子的 YouTube 视频
两者都会给你你需要的东西(没有域名):
import { useHistory ,useLocation } from 'react-router-dom';
const location = useLocation()
location.pathname
const history = useHistory()
history.location.pathname
你得到的undefined
是因为你可能有 React Router 之外的组件。
请记住,您需要确保您调用this.props.location
的<Route />
组件位于这样的组件内:
<Route path="/dashboard" component={Dashboard} />
然后在仪表板组件中,您可以访问this.props.location
...