小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 当前 Bug 的表现(可附上截图)
scroll-view列表里的组件删除,再加载新组件,新组建疑似使用了旧组件的尸体,并且旧组件的状态被保留到了新组件,无法触发reday函数
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
其实这个不是bug,ready函数只会执行一次在页面布局完成的时候,你定时器执行的时候,都3秒后意思过了ready执行期才执行的定时器,那个时候不会运行ready函数了。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
希望官方尽快搞定这个问题,我的项目里有很多列表是用类似模式的代码控制的,公司业务决定这样写代码会比较好,如果这个问题不能解决,那真的会非常头疼
代码片段,请注意颜色的顺序
https://developers.weixin.qq.com/s/ocAbTGmc7e5N
兄弟,理解错ready函数和组件的意思了。给你改了改代码,看看效果修改你传的代码片段,效果可以了
按照一般的想法,我有一个wx-for方式渲染的列表,对array1做的渲染,然后我用setData把array1变成另一个数组array2(),那么框架应该先把原有组件删除,再重新渲染新组件。但是小程序框架为了性能,把array2中的新元素和array1中的老元素绑定到页面上的属性做了对比,如果新元素和老元素绑定到页面上的属性的值全都没有差异,那么就不删除本应该删除的旧组件,但也不再次调用它的生命周期方法,而是直接放入新列表里显示出来,这就导致了我提交的代码片段的bug,因为我的组件的样式是由ready方法决定的。很直观的现象,不难做出这样的推理。只能说官方在优化这块真的偷懒了,没有在编译的时候多下功夫,直接无脑优化了。这么一优化我的页面是不闪烁了,可我的客户如果看到的数据是错的,这锅还是得我背。
能来个片段吗?
我看看怎么提交代码片段,不知道这块具体流程是怎样的
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
噗嗤。。
尽可能地按照项目里的模式写的代码,复现了bug
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
其实这个不是bug,ready函数只会执行一次在页面布局完成的时候,你定时器执行的时候,都3秒后意思过了ready执行期才执行的定时器,那个时候不会运行ready函数了。
希望官方尽快搞定这个问题,我的项目里有很多列表是用类似模式的代码控制的,公司业务决定这样写代码会比较好,如果这个问题不能解决,那真的会非常头疼
代码片段,请注意颜色的顺序
https://developers.weixin.qq.com/s/ocAbTGmc7e5N
兄弟,理解错ready函数和组件的意思了。给你改了改代码,看看效果修改你传的代码片段,效果可以了
按照一般的想法,我有一个wx-for方式渲染的列表,对array1做的渲染,然后我用setData把array1变成另一个数组array2(),那么框架应该先把原有组件删除,再重新渲染新组件。但是小程序框架为了性能,把array2中的新元素和array1中的老元素绑定到页面上的属性做了对比,如果新元素和老元素绑定到页面上的属性的值全都没有差异,那么就不删除本应该删除的旧组件,但也不再次调用它的生命周期方法,而是直接放入新列表里显示出来,这就导致了我提交的代码片段的bug,因为我的组件的样式是由ready方法决定的。很直观的现象,不难做出这样的推理。只能说官方在优化这块真的偷懒了,没有在编译的时候多下功夫,直接无脑优化了。这么一优化我的页面是不闪烁了,可我的客户如果看到的数据是错的,这锅还是得我背。
能来个片段吗?
我看看怎么提交代码片段,不知道这块具体流程是怎样的
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
噗嗤。。
https://developers.weixin.qq.com/s/ocAbTGmc7e5N
尽可能地按照项目里的模式写的代码,复现了bug