iOS系统下,bindinput事件获取输入框值,每次只输入一个字符键盘就消失,需要重新打开键盘。
部分代码如下:
< view wx:for = "{{drugs}}" wx:key = "id" wx:for-index = "idx" > //省略其余代码 < input type = "number" bindinput = "iptNumChange" data-idx = "{{idx}}" />
|
let drugs = this .data.drugs let idx = e.currentTarget.dataset.idx drugs[idx].num = e.detail.value this .setData({ drugs }) } |
当删除iptNumChange 事件中的setData() 后,键盘输入恢复正常。
请问怎么解决?
ps:我的程序中有其他页面在bindinput中同样有调用setData(),但并没有出现输入一个字符后自动收起键盘的情况。
我感觉应该就是这个问题,你仔细找找,看看wxml,看看是不是哪个data有变换,或者你现在循环的那段区域有data变换
尝试过把setData()中的drugs复制一份来循环,问题并没有解决。也尝试过setData()中的data不是drugs而换成另外任何data中有定义的参数,但只要iptNumChange 中存在setData()就会有问题......
有可能是
this
.setData({
drugs
})
这个操作会导致页面重绘,你不要用drugs来循环或者换一个data来维护数据