我有一个名为“ moduleA”的模块,其状态包含“ errorMessage”和一个名为“ storeErrorMessage”的变量。该错误消息正确呈现在我的组件中,但问题是我无法在离开路由之前清除它。我在moduleA中有一个变异方法,称为“ clearErrorMessage”,该方法应该将moduleA errorMessage状态设置为null,但这种方式无法正常工作。
请参阅下面的一些代码:
FormArray
我不知道我在做什么错,因为未清除错误和“确定”消息。有人可以帮我吗?
答案 0 :(得分:1)
现在,您不是在调用/调用突变,而只是返回它们的值,即this.clearErrorMessage;
。您应该使用()
,即this.clearErrorMessage();
来调用函数。
此外,您不能使用ES6箭头功能,因为这会将词法绑定到您的beforeRouteLeave
方法,而该方法不是。 From the docs:
请勿在options属性或回调函数上使用箭头功能,例如
created: () => console.log(this.a)
或vm.$watch('a', newValue => this.myMethod())
。由于箭头函数没有this
,因此this
将被视为任何其他变量,并按词法在父级作用域中进行查找,直到找到
以下代码应该起作用:
beforeRouteLeave: function (to, from, next) => {
this.clearErrorMessage();
this.clearOkMessage();
next();
}
答案 1 :(得分:0)
现在,我已经使用ES5标准功能而不是ES6箭头功能解决了它,如下所示:
beforeRouteLeave: function (to, from, next){
console.log(this)
this.clearErrorMessage();
this.clearOkMessage();
next();
}