NextJs: 404页面后退按钮returns返回404页面
NextJs: 404 page back button returns back to 404 page
我在 user 页面的生命周期方法中有一个条件,如果用户输入带有某些参数(例如 somePage.com/user/1
的 URL 将获取ID 为 1 的用户的数据,但是,如果用户输入 URL 作为 somePage.com/user/1ABC
,那么我会将他们路由到自定义 404 页面。我的问题是,当我在 404 页面中单击后退按钮时,我将返回带有 URL somePage.com/user/1ABC
的页面,然后将返回到与 URL 相同的 404 页面] 参数在用户页面的生命周期方法中满足条件。
如果用户进入 404 页面并单击浏览器的后退按钮,我想将用户转到其他 URL。
Router.push 会将新的 URL 添加到历史堆栈中,但是,Router.replace 将重定向到 404 页面而不添加新的 URL 条目到历史堆栈。所以后退按钮将重定向到历史堆栈中最后一个成功的条目,https://nextjs.org/docs/api-reference/next/router#routerreplace给出了一个明确的例子。
我在 user 页面的生命周期方法中有一个条件,如果用户输入带有某些参数(例如 somePage.com/user/1
的 URL 将获取ID 为 1 的用户的数据,但是,如果用户输入 URL 作为 somePage.com/user/1ABC
,那么我会将他们路由到自定义 404 页面。我的问题是,当我在 404 页面中单击后退按钮时,我将返回带有 URL somePage.com/user/1ABC
的页面,然后将返回到与 URL 相同的 404 页面] 参数在用户页面的生命周期方法中满足条件。
如果用户进入 404 页面并单击浏览器的后退按钮,我想将用户转到其他 URL。
Router.push 会将新的 URL 添加到历史堆栈中,但是,Router.replace 将重定向到 404 页面而不添加新的 URL 条目到历史堆栈。所以后退按钮将重定向到历史堆栈中最后一个成功的条目,https://nextjs.org/docs/api-reference/next/router#routerreplace给出了一个明确的例子。