在input组件的bindinput事件里调用setData
发布于 5 年前 作者 yang17 12381 次浏览 来自 问答

在wxml里有一个input组件,初始值来自page里的data.name,如下

<input value="{{name}}"></input>

为了得到input组件的输入,需要设置bindinput事件,并在事件处理函数里更新data.name的值,如:

name_input: function (e) {

this.setData{

name: e.detail.value

}

}

请问下,这样做的话存在问题吗?用户在输入数据后 name_input被调用,里边又用setData更新了data.name的值。因为使用的是setData,这样又会导致视图被更新(虽然从结果上看不出来,因为被更新的值和用户输入的是一样的)。

6 回复

有,https://mp.weixin.qq.com/debug/wxadoc/dev/component/input.html

bindInput 事件提供定位光标 cursor 的能力

谢谢回答!了解了。

请问在setData后,input的光标会被移到最后,这个有什么好的解决方案吗?

呵呵呵,新版这样做,直接无法输入中文了~

4楼你弄清楚人家的问题了吗?

在更新视图之前,小程序会比较 setData 传入的值与实际 value 的值,如果一致则不会触发更新

回到顶部