Vuejs2 vue路由器在路由器之前已触发两次
我正在尝试创建一个全局“未保存的更改确认”功能 因此,每当编辑某个表单时,我都会设置一个全局vuex状态,表示有未保存的更改,然后我希望用户在路由更改之前进行确认 我已经创建了一个全局mixin,它可以正常工作,除非有嵌套的路由器视图,然后beforeRouteLave被触发两次,然后next()函数就不能工作了 这就是它的样子:Vuejs2 vue路由器在路由器之前已触发两次,vuejs2,vue-component,vue-router,Vuejs2,Vue Component,Vue Router,我正在尝试创建一个全局“未保存的更改确认”功能 因此,每当编辑某个表单时,我都会设置一个全局vuex状态,表示有未保存的更改,然后我希望用户在路由更改之前进行确认 我已经创建了一个全局mixin,它可以正常工作,除非有嵌套的路由器视图,然后beforeRouteLave被触发两次,然后next()函数就不能工作了 这就是它的样子: Vue.mixin({ computed: { unsavedChanges() { return this.$sto
Vue.mixin({
computed: {
unsavedChanges() {
return this.$store.getters["helpers/unsavedChanges"]
}
},
beforeRouteLeave (to, from, next) {
if (this.unsavedChanges) {
this.$Modal.confirm({
title: 'Unsaved changes',
content: '<p>Are you sure you wish to leave the page?</p>',
okText: 'Continue',
cancelText: 'Cancel',
onOk: () => {
next()
},
onCancel: () => {
next(false)
}
});
}
}
})
Vue.mixin({
计算:{
未录制的更改(){
返回此。$store.getters[“helpers/unsavedChanges”]
}
},
在离开之前(到、从、下一个){
如果(此未保存的更改){
这是$Modal.confirm({
标题:“未保存的更改”,
内容:“您确定要离开页面吗?”,
okText:'继续',
cancelText:“取消”,
小野:()=>{
下一个()
},
onCancel:()=>{
下一个(假)
}
});
}
}
})
只要没有子路由器视图,它就可以正常工作,但是如果有子路由器视图,则路由器不会更改,即使单击“继续”并调用next()函数
我如何解决这个问题?谢谢。还要添加您的路由器代码