Javascript 在Next.js中重新加载客户端并更改url

Javascript 在Next.js中重新加载客户端并更改url,javascript,react-router,server-side-rendering,next,next-router,Javascript,React Router,Server Side Rendering,Next,Next Router,我的下一个js组件中有以下代码片段-: import { useRouter } from "next/router"; import Router from "next/router"; import { Menu } from "antd"; export default function AccountMenuList() { const router = useRouter(); function onClick({ k

我的下一个js组件中有以下代码片段-:

import { useRouter } from "next/router";
import Router from "next/router";
import { Menu } from "antd";
export default function AccountMenuList() {
  const router = useRouter();
  function onClick({ key }) {
    switch (key) {
      case "my-account":
        router.push("/profile");
        break;
      case "my-wishlist":
        router.push("/wishlist");
        break;
      case "logout": {
        localStorage.removeItem("user");
        // Router.reload(window.location.pathname);
        router.reload();
        break;
      }
      default:
        break;
    }
  }
  return (
    <Menu onClick={onClick}>
      <Menu.Item key="my-account">MY ACCOUNT</Menu.Item>
      <Menu.Item key="my-wishlist">MY WISHLIST</Menu.Item>
      <Menu.Item key="logout">LOGOUT</Menu.Item>
    </Menu>
  );
}

从“下一个/路由器”导入{useRouter};
从“下一个/路由器”导入路由器;
从“antd”导入{Menu};
导出默认函数AccountMenuList(){
const router=useRouter();
函数onClick({key}){
开关(钥匙){
案例“我的账户”:
路由器推送(“/profile”);
打破
案例“我的愿望清单”:
路由器推送(“/wishlist”);
打破
案例“注销”:{
localStorage.removietem(“用户”);
//重新加载(窗口、位置、路径名);
router.reload();
打破
}
违约:
打破
}
}
返回(
我的帐户
我的愿望清单
注销
);
}
在应用程序中,我在“/profile”页面上,然后单击注销按钮。我想做的是将url更改回主页“/”,并进行客户端重新加载。我知道客户端重新加载可以通过router.reload()完成。但是将它与router.push()一起使用不会更改url和页面本身


有人能解释一下我的错误吗?

在这种情况下,我会做一个硬的
窗口。location=“/”
(或者明确地设置基本URL而不是斜杠)。它会将浏览器发送到该URL,并在此过程中重新加载页面