我使用Vue和VueNativeSock。 VueNativeSock具有“ onmessage”事件,每次websocket获取数据时都会触发该事件。我想要实现的是在App组件及其所有子组件中都具有主要onmessage事件,在子组件中具有“第二” onmessage事件。不幸的是在子组件中编写:
this.$options.sockets.onmessage = (websocket) => { }
覆盖App'a onmessage事件,这是完全可以理解的。有人建议我的解决方案是调用子组件:
this.$options.sockets.addEventListener('message', eventHandler);
代替:
this.$options.sockets.onmessage = (websocket) => { }
,它将完成工作。不幸的是,我收到一个错误消息,说addEventListener不是这个函数。我不太了解$ options.sockets,但是我希望并不是每个对象都有addEventListener。
经过少量研究后得出的解决方案是VueNativeSock可以使用Vuex存储,而变异使我先被称为主要事件,随后又被称为主要事件。不幸的是,突变是在商店中而不是在子组件中进行硬编码的。
这里有两个问题:
如何更改一种突变 从硬编码存储区(例如子组件)之外,我的意思是:
this。$ store.mutations.SOCKET_ONMESSAGE = function(){...}
其中SOCKET_ONMESSAGE是可以提交的套接字事件。
任何帮助将不胜感激。 卡尔雷格