【问题标题】:nextjs get back to page before 404 from page after 404nextjs 从 404 之后的页面返回到 404 之前的页面
【发布时间】:2020-09-07 12:27:45
【问题描述】:

我使用 nextjs 创建了一个 404 页面,它无需任何配置即可工作并显示我的自定义 404 页面。 我在此页面中有一个链接,可将用户重定向到另一个页面。在这个新页面上,如果用户单击 back 我想将它们发送回 404 之前的页面。 我看到了这个link,但我没有使用router.push

我该怎么做?

page1>404page>page2 通过单击 page2 上的后退按钮,我想转到 page1 而不是 404page。

谢谢

【问题讨论】:

    标签: javascript reactjs next.js


    【解决方案1】:

    为了实现你想要的,你可以使用router.replace

    根据文档:

    类似于 next/link 中的 replace 属性,router.replace 将阻止向历史堆栈添加新的 URL 条目。

    要实际获取(和使用)路由器对象,您可以使用 NextJS 提供的 useRouter 对象。因此,您的 404 页面可能如下所示:

    import { useRouter } from "next/router";
    
    export default () => {
      const router = useRouter();
    
      return (
        <div>
          <h3>404</h3>
          <h2>
            Try go here instead:{" "}
            <span onClick={() => router.replace("/page2")}>Go page2</span>
          </h2>
        </div>
      );
    };
    
    

    这样,通过转到 page2,您可以将历史堆栈中的 404 条目替换为 page2 url,这会给出您期望的行为 (working example here)

    【讨论】:

      猜你喜欢
      • 2020-05-12
      • 2013-08-28
      • 1970-01-01
      • 2019-11-14
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      相关资源
      最近更新 更多