Reactjs 如何仅为特定组件禁用浏览器后退按钮
我有3个部分: 登录 仪表板 工作空间 一旦用户成功登录,他将被导航到仪表板。从仪表板,他可以导航到工作区。 条件:1.登录后,导航到仪表板,用户应能够通过单击浏览器后退按钮返回登录页面。2.但他可以从工作区向后导航到仪表板 问题:未达到条件2。一旦我从仪表板导航到工作区,我就无法通过单击“浏览器后退”按钮导航回仪表板 登录码Reactjs 如何仅为特定组件禁用浏览器后退按钮,reactjs,react-router,Reactjs,React Router,我有3个部分: 登录 仪表板 工作空间 一旦用户成功登录,他将被导航到仪表板。从仪表板,他可以导航到工作区。 条件:1.登录后,导航到仪表板,用户应能够通过单击浏览器后退按钮返回登录页面。2.但他可以从工作区向后导航到仪表板 问题:未达到条件2。一旦我从仪表板导航到工作区,我就无法通过单击“浏览器后退”按钮导航回仪表板 登录码 login(newUser).then(res => { if(res === "NULL")
login(newUser).then(res => {
if(res === "NULL")
{
this.setState({confirmPswdShow: true});
}else if(res === "wrongPassword")
{
const password ="password invalid";
this.setState({authPassword : password});
}else{
window.history.pushState(null, null, window.location.href);
window.onpopstate = function(event) {
window.history.go(1);
};
this.props.history.push("/Dashboard");
}
})
仪表板代码
openProjectCreate(details){
console.log(details);
openProject(details)
.then(res => {
console.log(res);
this.props.history.push("/WorkSpace");
})
}
您不应该覆盖窗口上的pop功能。要禁用返回登录,只需在历史记录中替换其URL即可:
login(newUser)。然后(res=>{
如果(res==“NULL”){
这是我的国家({
confirmPswdShow:true
});
}否则如果(res==“错误密码”){
const password=“密码无效”;
这是我的国家({
authPassword:密码
});
}否则{
this.props.history.replace({
路径名:'/Dashboard'
});
this.props.history.push(“/Dashboard”);
}
})
您导航到dashboard,然后单击要导航到工作区的内容,然后单击back按钮返回dashboard不起作用?你能给我们看一些代码吗?当然…我会添加代码是的…从工作区,我应该能够在浏览器后退按钮的帮助下导航回仪表板。你为什么添加这个?window.onpopstate=函数(事件){window.history.go(1);};使上一页不会出现在单击浏览器的bakward按钮时