想用next.js取消浏览器的后退按钮

fum*_*aka 6 javascript next.js

我想用next.js取消浏览器的后退按钮。

  // not blocked...
  Router.onRouteChangeStart = (url) => {
    return false;
  };

Run Code Online (Sandbox Code Playgroud)

next.js 中有停止浏览器的功能吗?

Kat*_*ber 4

禁用后退按钮是一个明确的用户体验禁忌。但在极少数情况下,禁用后退按钮是绝对必要的。想象一下基于网络的考试应用程序,一旦考生继续前进,他们就无法导航回上一部分。

\n

应用这篇中等文章中给出的说明,我已经能够强制我的应用程序保持在路线上,即使在单击浏览器中的后退按钮时也是如此。不过我是初学者,如果有更好的解决方案,请编辑。

\n
useEffect(() => { \n  if (router.asPath === \'/?step=2\') {\n    window.onpopstate = () => { \n      history.go(1);\n    };\n  }\n}, [router]);\n
Run Code Online (Sandbox Code Playgroud)\n