子组件使用input组件,如果父组件存在和子组件相同的监听input的函数名,在输入法focus/b
发布于 7 年前 作者 ming22 9697 次浏览 来自 官方Issues

【BUG】:子组件使用input组件,如果父组件存在和子组件相同的监听input的函数名,在输入框光标focus/blur切换时,input组件会跳过子组件的监听函数直接触发父组件的监听函数。

注意:在真机上调试!!!

1、父组件监听函数

// js
Page({
  onKeywordChange() {
    console.log('Parent onKeywordChange')
  }
})
// wxml



2、子组件

// js
Component({
  methods: {
    onKeywordChange: function() {
      console.log('Child onKeywordChange')
      this.triggerEvent('keyword-change', {})
    }
  }
})
// wxml



3、运行结果

在输入框输入字母:a

控制台会依次输出:

Child onKeywordChange
Parent onKeywordChange

在输入框继续操作,光标focus/blur操作,控制台只会输出,跳过了子组件的监听函数。

Parent onKeywordChange
2 回复

我看了下代码片段,没发现什么问题啊

你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

回到顶部