收藏
回答

input在自定义组件中bindinput问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug input 微信安卓客户端 7.0.9 2.9.4

自定义组件, 这样:

MyInput.wxml:

<input placeholder="my input" bindinput="handleMyInput"/>


MyInput.js:

// pages/test/MyInput.js
Component({
  /**
   * 组件的属性列表
   */
  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.js
Page({
 
  /**
   * 页面的初始数据
   */
  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里面的监听器形同虚设了?

是我用法有问题吗? 求指教


回答关注问题邀请回答
收藏

3 个回答

  • Noshadow
    Noshadow
    2020-12-27

    妈耶,遇到了同样的问题,折腾到晚上三点也没弄好,实在找不到原因,朋友让我在input标签中加了一个value="",然后运行就可以了;虽然可以了,但是还是不服气,又把这个value=""删掉,再次运行,然后也没任何问题。虽然这个问题解决了,到现在还是不知道到底啥原因。估计是开发工具的问题

    2020-12-27
    有用
    回复
  • Ronger
    Ronger
    2020-06-01

    我也出现了相同的问题,这么久竟然还是没解决。

    要用真机调试。


    2020-06-01
    有用
    回复
  • 是小白啊
    是小白啊
    2019-12-13

    麻烦提供能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-12-13
    有用
    回复 4
    • 啥时给
      啥时给
      2019-12-13
      https://developers.weixin.qq.com/s/XDg0tAmW7Cd6
      2019-12-13
      回复
    • 是小白啊
      是小白啊
      2019-12-13回复啥时给
      问题未复现:测试机型iPhonexr,微信版本:7.0.8
      2019-12-13
      回复
    • 啥时给
      啥时给
      2019-12-13回复是小白啊
      iPhone机, 微信7.0.8都是变量. 能否用安卓机, 微信7.0.9测试?
      2019-12-13
      回复
    • 啥时给
      啥时给
      2019-12-18
      真是失望, 看来官方根本不管这个bug. 我们只能暂时在使用组件的目标页面去监听原本应该是组件自己监听的input回调
      2019-12-18
      回复
登录 后发表内容
问题标签