是否可以提供任何指南或建议,以解决以下问题。 用例:尝试实现通知组件 场景:我试图在Vue中触发事件时调用方法或更改数据状态。 我已经在安装的函数上定义了事件监听器,并尝试访问其中一种方法。
基本上,事件函数中的警报被触发,而方法内部的警报没有被触发,甚至事件函数中的任何数据操作也没有执行。
我在哪里想念?在事件监听器中更改状态是否不正确? 基本上,我正在尝试实施通知功能,该功能会在几秒钟后自动消失
感谢您的帮助。
谢谢, 吉里什
答案 0 :(得分:1)
还有另一个原因,回调函数中的this
不是Vue组件。您可以分配var self = this
并在回调中使用,或使用箭头函数。
mounted: function () {
var self = this
EventBus.$on('show', function () {
self.test()
self.show = true
})
},
methods: {
test () {
console.log('Inside methods')
}
}
答案 1 :(得分:0)
我相信您的问题是拼写错误而不是
method: {}
,使用methods: {}
示例:
Error.
method: {
test: function () {
alert('Inside Method');
}
correct.
methods: {
test: function () {
alert('inside method);
}
}
我知道这与问题无关,但是在使用事件总线时要小心,就好像您有一位发言人,并在人群中间大喊一个人的名字。 例: 事件总线说,汉密尔顿在10,000人的人群中。 在这群人中间,您可以拥有多少个汉密尔顿?使用更具体的内容,例如父子沟通,避免使用事件总线。