Javascript 使用React路由器的提示来阻止history.push

Javascript 使用React路由器的提示来阻止history.push,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我使用React Router的提示组件阻止用户在表单处于脏状态时切换选项卡。每个选项卡都有自己的路径,我正在使用历史记录。按更新URL提示在表单变脏时按预期显示,但当用户单击“取消”时,仍会转到新的URL 下面是处理切换选项卡和更新URL的函数 const handleClick=(选项卡ID,禁用,路由)=>{ 如果(禁用){ 返回false; } 设置所选索引(tabId); 如果(路线){ 历史。推(路线); } 返回true; }; 我猜history.push无论如何都会被执行 我

我使用React Router的提示组件阻止用户在表单处于脏状态时切换选项卡。每个选项卡都有自己的路径,我正在使用
历史记录。按
更新URL<代码>提示
在表单变脏时按预期显示,但当用户单击“取消”时,仍会转到新的URL

下面是处理切换选项卡和更新URL的函数

const handleClick=(选项卡ID,禁用,路由)=>{
如果(禁用){
返回false;
}
设置所选索引(tabId);
如果(路线){
历史。推(路线);
}
返回true;
};
我猜
history.push
无论如何都会被执行


我看到的每一个使用
提示符的例子都显示它与
链接一起使用。有没有办法让
提示符
处理
历史记录。按

这个问题的答案看起来像是你想要的。我以前见过这个。不幸的是,推送到历史堆栈不会触发浏览器的卸载事件。这是提示“可能历史记录”的代码。block是否可以工作?我自己没有试过。我的理解是,
history.block
正在消失@MichaelTurnwall我正在尝试完成同样的事情,你解决过这个问题吗?这个问题的答案看起来像是你想要的。我以前见过这个。不幸的是,推送到历史堆栈不会触发浏览器的卸载事件。这是提示“可能历史记录”的代码。block是否可以工作?我自己没试过,我的理解是
history.block
正在消失@MichaelTurnwall我正在尝试完成同样的事情,你解决过这个问题吗?