⼩程序setData不起作⽤setData函数注意事项
1. 直接修改 this.data ⽽不调⽤ this.setData 是⽆法改变页⾯的状态的,还会造成数据不⼀致。
2. 单次设置的数据不能超过1024kB,请尽量避免⼀次设置过多的数据。
3. 不要把 data 中任何⼀项的 value 设为 undefined ,否则可能遗留⼀些潜在问题。
问题背景:
js中有多次调接⼝来动态修改data数据的操作。
在⽹上了很多资料,这是第⼀个可能犯得错误。
click: function (e) {
var id = e.target.id//根据点击不同的view获取对应的id值
var str = "isChecked[" + id + "]"//重点在这⾥,组合出⼀个字符串
this.setData({
广播电视编导专业[str]: false//⽤中括号把str括起来即可
陈铭生个人资料及图片})
玉林中考成绩查询}
需要⽤中括号把str括起来
实际上还有个隐藏很深的bug。
在onLoad⾥,我set了⼀个catitems的数组结构
success:function(res){
var cateItems = res.data.data.msg
that.setData({
cateItems:cateItems,
cur_class_id: cateItems[0].class_id
})
},
我想要的catItems是这样⼦的。
cateItems: [
拳皇97连招{
class_id: 1,
class_name: "样机",
ishaveChild: true,
children:
母爱的俗语[
{
id: 1,
name: 'Seastone-RP1',
image: "../../images/equipment/Desktop/seastone.jpg"
},
]
},
]
但是在onLoad⾥我只设置了class_id和class_name,其他数据动态在其他函数⾥获取。
也就是将其他的数据设置成了undefined。
余少刘亦菲这就导致了我后续在setData操作⼀直未把数据传递给试图。⽽我在打log(this.data)时,的开发者⼯具打印出来的都是正确的cateItems的结构。害得我调试了好久。
发布评论