任何人都可以指导或建议如何解决以下问题。用例:尝试实现通知组件场景:我正在尝试调用方法或更改 Vue 中触发事件时的数据状态。我已经在挂载函数上定义了事件侦听器并尝试访问其中一种方法。
基本上,事件函数中的警报被触发,而方法内部的警报没有被触发,甚至任何数据操作都没有执行,即使在事件函数中也是如此。
我在哪里失踪?在事件侦听器中更改状态是否不正确?基本上我正在尝试实现几秒钟后自动消失的通知功能
任何帮助表示赞赏。
谢谢, 吉里什
任何人都可以指导或建议如何解决以下问题。用例:尝试实现通知组件场景:我正在尝试调用方法或更改 Vue 中触发事件时的数据状态。我已经在挂载函数上定义了事件侦听器并尝试访问其中一种方法。
基本上,事件函数中的警报被触发,而方法内部的警报没有被触发,甚至任何数据操作都没有执行,即使在事件函数中也是如此。
我在哪里失踪?在事件侦听器中更改状态是否不正确?基本上我正在尝试实现几秒钟后自动消失的通知功能
任何帮助表示赞赏。
谢谢, 吉里什
还有一个原因,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')
}
}
我相信你的问题是拼写错误而不是
method: {}
, 使用methods: {}
示例:
Error.
method: {
test: function () {
alert('Inside Method');
}
correct.
methods: {
test: function () {
alert('inside method);
}
}
我知道这与问题没有太大关系,但是在使用事件总线时要小心,就好像你有一个扬声器,在人群中间喊一个人的名字。示例:eventbus 在 10,000 人的人群中说 Hamilton。在这群人中间你能有多少个汉密尔顿?使用更具体的东西,例如父子通信,避免使用事件总线。