如题,这个问题一直困扰我很久,不知道大家有没碰到这个问题。当我提交成功一个表单后需要跳转到指定的待办列表路由后(我的跳转方式: this.route.navigate(['/home/tasks/waitApproval']);
),然后点手机上的回退按钮Ios更会,直接回退到原先的表单页面上了,然后就有可能会被重复提交操作。这个是做流程所不愿看到的。
我们所期望的是提交完表单后再跳转后的页面按回退按钮还是在当前的页面,不会历史回退。我测试了很多的解决历史回退办法还是不行。最后还是用一种不合适但有效的解决办法。
let ttime = new Date().getTime();
window.history.replaceState({}, '', '/home/tasks/waitApproval');
this.route.navigate(['/home/tasks/waitApproval',{"keyTime":ttime}]);
利用历史堆栈替换加上时间戳字段的方式来防止回退。在waitApproval组件模板中可以不用接收参数。它会自己加到路由上。