小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在onshow中打印数据有正确的数据返回,当打印数据中的内容确实空对象,数据是在onLoad中请求得到的,有没有大佬来解释一下
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
1、通过 console.log 输出的 对象类型 变量,在 console 面板里展示的是 即时数据
2、听你的描述 onLoad 中是通过 接口 去获取到 defPat 的数据,本身这是一个异步操作,所以 onShow 中打印 __data__ 和 __data__.defPat 的时候,都是没有你请求到的数据的,也就是都为 {}
3、因为 1、的原因,所以你在 console 中看到的打印 __data__ 的值中可以看到请求数据赋值后的 defPat
4、而打印 __data__.defPat 的值仍然为 {} 的原因应该是因为 onLoad / 首次 onShow 后,整个 __data__ 的值被重新初始化了(应该是在下图的阶段中),所以你打印的 __data__.defPat 是 旧 __data__ 里的变量,自然一直是 {}
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你可以尝试在onShow中使用setTimeout来延迟打印数据,以确保数据已经加载完成。
onShow
setTimeout
你好,需要贴一下完整的代码片段。目前的信息无法判断问题的原因。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
1、通过 console.log 输出的 对象类型 变量,在 console 面板里展示的是 即时数据
2、听你的描述 onLoad 中是通过 接口 去获取到 defPat 的数据,本身这是一个异步操作,所以 onShow 中打印 __data__ 和 __data__.defPat 的时候,都是没有你请求到的数据的,也就是都为 {}
3、因为 1、的原因,所以你在 console 中看到的打印 __data__ 的值中可以看到请求数据赋值后的 defPat
4、而打印 __data__.defPat 的值仍然为 {} 的原因应该是因为 onLoad / 首次 onShow 后,整个 __data__ 的值被重新初始化了(应该是在下图的阶段中),所以你打印的 __data__.defPat 是 旧 __data__ 里的变量,自然一直是 {}
你可以尝试在
onShow
中使用setTimeout
来延迟打印数据,以确保数据已经加载完成。你好,需要贴一下完整的代码片段。目前的信息无法判断问题的原因。