小程序
小游戏
企业微信
微信支付
扫描小程序码分享
let list = this.data.list;
let list =
this
.data.list;
let index = e.currentTarget.dataset.index;
list[index].num = list[index].num + 1;
this.setData({ is_edit:false})
.setData({ is_edit:
false
})
我setData了一个无关的值,list数组也跟着setData了,但是list在页面的数据没更新,不想list被setData
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
setData才能更新视图
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我理解的是,在开发工具环境中,只使用this.data.***来修改数据,开发工具AppData里的数据也会同步改,但是并不会同步到页面上;而在AppData里改是会同步到页面上的。
剩下的跟楼上说的点都一样。Page.data既存在于JS逻辑层和View视图层中,理论上它俩的数据内容是一样的,但它们数据又是分开的,在两个层里面分别存放了一份拷贝。即使你截图里有代码是修改到了list,但是使用这种修改是不会更新到页面的。
如果list里放的基本类型的数据
let list = this.data.list.concat()
如果有对象类型的,可以用json转,性能要低点,不过也还好
let list = JSON.parse(JSON.stringify(this.data.list))
setData 会跟更新 data上的数据 并渲染到页面上 你更改了 list数组中的某个元素的值 但是没有setData 所以页面上没有更新 你只是更改了 data对象中 list属性的值 并没有setData
但是list在页面的数据没更新,不想list被setData
肯定没更新,list想被setData也没办法
你不是只setData了is_edit吗
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
setData才能更新视图
我理解的是,在开发工具环境中,只使用this.data.***来修改数据,开发工具AppData里的数据也会同步改,但是并不会同步到页面上;而在AppData里改是会同步到页面上的。
剩下的跟楼上说的点都一样。Page.data既存在于JS逻辑层和View视图层中,理论上它俩的数据内容是一样的,但它们数据又是分开的,在两个层里面分别存放了一份拷贝。即使你截图里有代码是修改到了list,但是使用这种修改是不会更新到页面的。
如果list里放的基本类型的数据
let list = this.data.list.concat()
如果有对象类型的,可以用json转,性能要低点,不过也还好
let list = JSON.parse(JSON.stringify(this.data.list))
setData 会跟更新 data上的数据 并渲染到页面上 你更改了 list数组中的某个元素的值 但是没有setData 所以页面上没有更新 你只是更改了 data对象中 list属性的值 并没有setData
但是list在页面的数据没更新,不想list被setData
肯定没更新,list想被setData也没办法
你不是只setData了is_edit吗