已经搞不清楚问题出在函数的哪个部分了,头大了好几圈啊……,
< checkbox-group name = "havechecked" > < label wx:for = "{{list}}" wx:key = "sn" > < checkbox value = "{{index}}" checked = "{{item.checked}}" /> {{list.text}}
|
data: { list:[...] } submit: function (){ var list = this .data.list; var value = e.detail.value; var toDelete = value.havechecked; console.log(toDelete, value); toDelete.forEach( function (v) { list.splice[v, 1]; }); for ( var i = 0; i < list.length; ++i) { list[i].checked = false ; } this .setData({ list: list, }) }, |
结果:
["1","2","0" ] {havechecked: Array(3)}
Cannot read property 'havechecked' of undefined;at /.../... submit function
TypeError: Cannot read property 'havechecked' of undefined
但是解决了我楼上说的问题之后,小程序的功能是正常了,但是仍然存在这个错误提示……,一头雾水中。
知道原因了,list.splice会修改list,虽然还是没明白为什么会提示这个错误,但是知道这个submit函数是有问题的。
wxml的标签不封闭不是问题。是我敲这个示例时不知什么原因造成的。重点是这个havechecked明明已经获取到了,为什么还会出这个提示,console.log( )后面的哪个部分出了问题?(这些部分根本没有显式调用过这个haveked)。对JavaScript理解不深,已经不知道是javaScript的问题还是小程序框架的问题了……脑细胞死了一片……