如代码片段,项目中有启动页 index,自定义组件 Component ,其它 other 三个组成部分
index.js 通过 const other = require('../other/other.js'); 然后在 onLoad 中 other.call(this) 来实现了 other.js 中的 otherTap 和 changeOtherTextarea 方法
一旦 index.json 引入了 usingComponents 自定义组件后项目报警告 Do not have changeOtherTextarea handler in component,Textarea 组件的 bindinput 方法 changeOtherTextarea 找不到,但 View 组件的 otherTap 正常
尝试修改
在 Component 的 methods 中加上 changeOtherTextarea 不能解决
在 Component 中直接加上 changeOtherTextarea 也无法解决
在 index.js 中实现下 changeOtherTextarea 方法并传递参数即可解决
在 index.js 中空实现 changeOtherTextarea 也能解决
请问用上自定义组件 Component后是对 call 兼容不好吗?感觉大部分事件都能继承进去,唯独 Textarea 组件的 bindinput 方法不实现
代码片段都贴出来了,官方不打算回复下么
我也遇到同样的问题,急!
刚发现 input 组件的 bindinput 也失效,貌似 bindinput 回调都有类似的问题
我也遇到同样的问题,急!
我也遇到同样的问题,急!
我出现这个问题是在自定义组件里的textarea里面通过model:value双向绑定一个page({})里data对象中的一个变量,然后在textarea里面进行任何操作都爆了这个提示。估计是这里的双向绑定是通过监听input事件来完成而page里面没有这个事件处理函数,所以我给textarea加个bindinput事件同时在page里面定义,就解决这个问题了
同样的情况,,,
答案:
很简单,在
input
上先绑定需要取值的变量,如这个变量名是name
,然后再定义一个用于指向变量名的属性data-modal
这个属性值设置为name
,在input
的绑定方法中将这个属性值取出,就会知道这个input
绑定了哪个变量,然后再将input
的当前值赋给这个变量即可。<input id='name' name="name" type='text' value='{{name}}' <!-- input 从 js 中的 data.name 取值 --> data-modal='name' <!-- 这里通过 data-xx 的形式传递一个需要绑定的变量名,之后可以通过 event.dataset.xxx 轻松取到 --> bindinput='handleInputChange' <!-- 这里绑定 input 内容变化时的处理方法 --> > </input> https://www.jb51.net/article/172156.htm
到底腾讯还管不管这个问题了,我也遇到了,没找到任何可行的解决办法。