Javascript 在Next.js中重新加载客户端并更改url
我的下一个js组件中有以下代码片段-: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
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,并在此过程中重新加载页面