如何访问 Next.JS 自定义 404 页面上的当前路由?

How do I access the current route on a Next.JS custom 404 page?

我的 Next.JS 应用 (404.js) 中有一个自定义 404 页面。在页面上,我想显示像 The route <strong>/not-a-route</strong> does not exist 这样的消息,但是当使用 Next.js 的 useRouter()router.pathname 时,路由器认为我在 /404 而不是显示 The route <strong>/404</strong> does not exist。如何在自定义 404 页面中访问我所在的实际路线?

export const NotFound: React.FC = () => {
  const router = useRouter();
  console.log(router.pathname) // prints /404
  return (
    <Layout title='Oops! Something went wrong!'>
      <div className={styles.container}>
        <h1>Oops! Something went wrong!</h1>
          <p>
            The route <strong>{router.pathname}</strong> does not exist.
          </p>
      </div>
    </Layout>
  );
};

您可以访问 redirected route 作为 router.asPath。尝试:

import {useRouter} from 'next/router'
export const NotFound: React.FC = () => {
  const router = useRouter();
  console.log(router.asPath)
  return (
    <Layout title='Oops! Something went wrong!'>
      <div className={styles.container}>
        <h1>Oops! Something went wrong!</h1>
          <p>
            The route <strong>{router.asPath}</strong> does not exist.
          </p>
      </div>
    </Layout>
  );
};