如何从反应路线获取href ID?

时间:2020-01-14 09:20:00

标签: javascript reactjs

我正在尝试从react.js项目中获取路由的ID,例如:page1#view-all

我尝试使用本机JavaScript documentwindow,但不幸的是,由于SSR,我无法采用这种方式。

上述功能还有其他选择吗?如何获得带有href ID的路由器链接? page1#view-all

谢谢

仅供参考,使用documentwindow时遇到的错误是我未定义任何错误。

这是一个代码段:

<Link
                to="/page1#view-all"
                className={`subItem-anchor
                ${
                  route && route.split("/")[route.split("/").length - 1] === "all-projects"
                    ? "subnavitemHighlightd"
                    : ""
                }`}
              >

route实际上是其他路由,例如page1/another-sub-page,但我无法获得page1#view-all

2 个答案:

答案 0 :(得分:1)

使用react-router-dom

import { useLocation } from 'react-router-dom'

并像这样访问

  let location = useLocation()
  console.log(location);

useLocation挂钩返回包含pathnamesearchhashkey和当前位置的状态属性的位置对象。 / p>

要访问的示例代码

function App(){

let location = useLocation()
return(
<h3>Access from useLocation</h3>
)}

或者如果它是基于类的组件,则可以像这样访问而不导入任何东西

let urlData = this.props.location;
console.log(urlData);

答案 1 :(得分:0)

找到了解决方法,我做了什么

render() {
  { ssr } = this.props

  if (ssr) return
  const urlId = window.location.toString().split("#")[1]

  return(
    <div>URL ID: {urlId}</div>
  )
}