我使用nextjs创建了一个404页面,该页面无需任何配置即可工作并显示我的自定义404页面。
我在此页面中有一个链接,可将用户重定向到另一个页面。在此新页面上,如果用户单击.proto
,我想将它们发送回404之前的页面。
我看到了这个link,但没有地方使用back
。
我该怎么做?
router.push
通过单击第2页上的后退按钮,我要转到第1页而不是404页。
谢谢
答案 0 :(得分:0)
要实现您想要的目标,可以使用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>
);
};
通过这种方式,转到第2页,将历史记录堆栈中的404条目替换为提供预期行为(working example here)的page2网址