自定义组件, 这样:
MyInput.wxml:
|
MyInput.js:
// pages/test/MyInput.jsComponent({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { }, /** * 组件的方法列表 */ methods: { handleMyInput(e) { this.triggerEvent('input', e, { bubbles: false }); }, }}) |
页面, 这样:
pages/test/test.wxml
<!--pages/test/test.wxml--><text>pages/test/test.wxml</text><my-input bind:input="handleInput" ></my-input><button bindtap="submit">submit</button> |
pages/test/test.js
// pages/test/test.jsPage({ /** * 页面的初始数据 */ data: { value: '', }, handleInput(e) { console.log("handleInput", e.detail.value); this.setData({ value: e.detail.value }) }, submit(e) { console.log(">>>>", this.data.value); },}) |
然后输入, 失去焦点之后有一个这样的warning
input不在MyInput组件里面找监听的方法, 跑去页面test里面找? MyInput里面的监听器形同虚设了?
是我用法有问题吗? 求指教

妈耶,遇到了同样的问题,折腾到晚上三点也没弄好,实在找不到原因,朋友让我在input标签中加了一个value="",然后运行就可以了;虽然可以了,但是还是不服气,又把这个value=""删掉,再次运行,然后也没任何问题。虽然这个问题解决了,到现在还是不知道到底啥原因。估计是开发工具的问题
我也出现了相同的问题,这么久竟然还是没解决。
要用真机调试。
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)