@reach/router:如何获取当前路由/页面?

@reach/router: how to get the current route / page?

如何获取到达路由器的当前路由。在反应路由器中,人们会通过参数获得它吗?

文档目前没有显示如何执行此操作的示例。

使用传递给组件的 this.props.location:

https://reach.tech/router/api/Router

或者,使用 useLocation 钩子(因为 1.3.0):

import { useLocation } from "@reach/router"

const useAnalytics = () => {
    const location = useLocation()

    useEffect(() => {
        ga.send(['pageview', location.pathname])
    }, [])
}

参考:https://reach.tech/router/api/useLocation

您可以简单地从 @reach/router 导入 useLocation 并将其分配给一个 const 在您的代码中使用它,如下所示。

import React from "react";

import { useLocation } from "@reach/router";

const YourPage = () => {
  const location = useLocation();
  return (
    <Page>
      <div>{(location.pathname = "/terms/")}</div>
    </Page>
  );
};

export default YourPage;