0

任何人都可以指导或建议如何解决以下问题。用例:尝试实现通知组件场景:我正在尝试调用方法或更改 Vue 中触发事件时的数据状态。我已经在挂载函数上定义了事件侦听器并尝试访问其中一种方法。

在此处输入图像描述

基本上,事件函数中的警报被触发,而方法内部的警报没有被触发,甚至任何数据操作都没有执行,即使在事件函数中也是如此。

我在哪里失踪?在事件侦听器中更改状态是否不正确?基本上我正在尝试实现几秒钟后自动消失的通知功能

任何帮助表示赞赏。

谢谢, 吉里什

4

2 回答 2

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')
  }
}
于 2018-11-05T02:10:31.770 回答
0

我相信你的问题是拼写错误而不是

method: {}

, 使用methods: {} 示例:

Error.
method: {
test: function () {
alert('Inside Method');
}

correct.
methods: {
test: function () {
alert('inside method);
}
}

我知道这与问题没有太大关系,但是在使用事件总线时要小心,就好像你有一个扬声器,在人群中间喊一个人的名字。示例:eventbus 在 10,000 人的人群中说 Hamilton。在这群人中间你能有多少个汉密尔顿?使用更具体的东西,例如父子通信,避免使用事件总线。

于 2018-11-05T00:40:15.180 回答