Page({ data: { todoLists:[ { detail:"", date:"", location:"", priority:"", remark:"", dateStatus:false, locationStatus:false, dateRepeat:false, completeStatus: false, currentInput:"", }, { detail: "", date: "", location: "", priority: "", remark: "", dateStatus: false, locationStatus: false, dateRepeat: false, completeStatus: false, currentInput:"", } ], }, getInput:function(e){ let index = e.currentTarget.dataset.index; let currentInput = `todoLists[${index}].currentInput`; this.data.todoLists[index].currentInput = e.detail.value; this.setData({ todoLists: this.data.todoLists }) console.log(this.data.todoLists[index].currentInput) // 可以实时改变 } })
<textarea class="weui-textarea {{ item.completeStatus && item.completeStatus === true ? 'text-transparent' : '' }}" placeholder="请输入文本" bindinput="getInput" maxlength="1000" data-index="{{index}}" value="{{item.currentInput}}" auto-height auto-focus="true" />
小程序中监听textarea或者input输入的值动态改变data中数组的对象的值,不能通过setData设置数组对应索引的对象的值来改变,改变之后,能检测到改变,但是值为空。先通过赋值改变其中数组中的对象的值,然后重新设置数组。
参考链接:https://blog.csdn.net/chou_out_man/article/details/75575100