1

我的 Next.JS 应用程序 (404.js) 中有一个自定义 404 页面。在页面上,我想显示一条消息The route <strong>/not-a-route</strong> does not exist,但是当使用 Next.jsuseRouter()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>
  );
};
4

1 回答 1

3

您可以访问redirected routeas 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>
  );
};
于 2021-04-05T12:15:01.227 回答