小程序
小游戏
企业微信
微信支付
扫描小程序码分享
本项目为商城项目,有个人设置页,用tabBar进行跳转,如下图:红框中的数据为onShow方法中拉接口获取,不过每次从其它tab跳过来都会刷新数据,页面红框中的数据就会闪动一下,这样体验很不好,看到很多商城小程序都不会闪动,不知道怎么办了 求助!因为这里的数据需要动态更新的 比如在商品页面添加了一个商品到付款里面那么跳转到这个页面待付款就会多一个,不过其它地方的数据也会刷新一下 很不爽,怎么弄?
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你onShow每次都把member_info清空那肯定啊,如果不想这样,你先判断是否登录了再判断member_info是否需要清空
wx.showLoading();
this.get_memberInfo();
if (!app.globalData.user.is_login) {
this.setData({
member_info: {}
});
}
无论登陆不登陆你圈起来的数据给默认值,比如<view>{{member_info.money || 0}}</view>
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
感谢,确实是那里 每次进来都清空了,又重新赋值导致的闪动,不知道之前的人为什么这么写的,我一开始就把问题搞复杂了。
onshow判断现在的数据是否跟传过来的数据一样,一样就不setData,不一样再setData
tabBar跳转不是只能触发一个onshow 函数么?
wx.showLoading()
xx: xx
}, () => {
wx.hideLoading()
})
页面上也显示loading了 不过下面的数据还是会闪一下,数据出来后 loading消失了 并没有什么不同啊?。。头像用的那个数据,也还是会闪一下。
设一些占位的初始值
setData成功之后再显示页面,先loading
。。。这个听起来 很不错 不过具体怎么弄呢?
setData有成功回调的啊
渲染之前请求好
渲染之前有什么周期函数么?
具体是在哪个函数里面呢?
数据量不大的情况下, 你可以在切换的时候先请求数据,请求完进来数据就直接有了。
或者楼下说的进来先显示loading、请求数据,你setData完成后hideloading
a:1,
() => {
console.log('赋值成功')
console.log(
'赋值成功'
)
如楼上图的样子
自己写个loading压住
意思就是写个不透明的 蒙版的loading?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你onShow每次都把member_info清空那肯定啊,如果不想这样,你先判断是否登录了再判断member_info是否需要清空
wx.showLoading();
this.get_memberInfo();
if (!app.globalData.user.is_login) {
this.setData({
member_info: {}
});
}
无论登陆不登陆你圈起来的数据给默认值,比如<view>{{member_info.money || 0}}</view>
感谢,确实是那里 每次进来都清空了,又重新赋值导致的闪动,不知道之前的人为什么这么写的,我一开始就把问题搞复杂了。
onshow判断现在的数据是否跟传过来的数据一样,一样就不setData,不一样再setData
tabBar跳转不是只能触发一个onshow 函数么?
wx.showLoading()
this.setData({
xx: xx
}, () => {
wx.hideLoading()
})
页面上也显示loading了 不过下面的数据还是会闪一下,数据出来后 loading消失了 并没有什么不同啊?。。头像用的那个数据,也还是会闪一下。
设一些占位的初始值
setData成功之后再显示页面,先loading
。。。这个听起来 很不错 不过具体怎么弄呢?
setData有成功回调的啊
渲染之前请求好
渲染之前有什么周期函数么?
具体是在哪个函数里面呢?
数据量不大的情况下, 你可以在切换的时候先请求数据,请求完进来数据就直接有了。
或者楼下说的进来先显示loading、请求数据,你setData完成后hideloading
this.setData({
a:1,
() => {
console.log(
'赋值成功'
)
}
})
页面上也显示loading了 不过下面的数据还是会闪一下,数据出来后 loading消失了 并没有什么不同啊?。。头像用的那个数据,也还是会闪一下。
如楼上图的样子
自己写个loading压住
意思就是写个不透明的 蒙版的loading?