如何通过代码触发按钮tap事件?调用$emit报错‘$emit is not a function’
解决方法
直接调用绑定的处理函数
既然按钮的@tap已经绑定了handleRetrieve方法,没必要绕弯子触发tap事件,直接在textchange函数里调用这个方法就行:this.handleRetrieve()这是最靠谱的方式,完全避开了操作组件实例或DOM的问题。
触发原生DOM点击事件
如果你的Button组件最终渲染成了原生<button>元素,或者你需要模拟真实的点击行为,可以尝试触发原生click事件:// 如果ref直接指向DOM元素 this.$refs.btnRetrieve.click() // 如果ref指向组件实例,需要先获取底层DOM this.$refs.btnRetrieve.$el.click()排查ref指向的对象类型
报错$emit is not a function说明你拿到的$refs.btnRetrieve不是Vue组件实例,可能是原生DOM元素。可以在textchange里打印console.log(this.$refs.btnRetrieve)看看它到底是什么,再针对性处理。
内容的提问来源于stack exchange,提问作者pb123
相关产品推荐
相关产品推荐

