Next.js:如何使用 Next Router 清除浏览器历史记录?

问题描述 投票:0回答:1

我为页面创建了一个包装器,它将未经身份验证的用户弹回登录页面。

私有路由包装器:

import { useRouter } from 'next/router'
import { useUser } from '../../lib/hooks'
import Login from '../../pages/login'

const withAuth = Component => {
  const Auth = (props) => {
    const { user } = useUser();
    const router = useRouter();

    if (user === null && typeof window !== 'undefined') {
      return (
        <Login />
      );
    }


    return (
      <Component {...props} />
    );
  };

  if (Component.getInitialProps) {
    Auth.getInitialProps = Component.getInitialProps;
  }

  return Auth;
};

export default withAuth;

这有效\o/,但是我注意到当我注销时有一个行为,使用

Router.push('/',)
将用户返回到主页后退按钮包含先前路由的状态,我希望状态重置,作为一个用户经过身份验证应该有一种体验,就好像他们从头开始......

提前谢谢您!

next.js browser-history next-router
1个回答
0
投票

您始终可以使用

Router.replace('/any-route')
,用户将无法使用后退按钮返回

© www.soinside.com 2019 - 2024. All rights reserved.