下来刷新的时候可能会出现白屏的问题?
- 下拉刷新的是 <scroll-view> 组件的自定义下拉刷新。
- 页面上的瀑布流组件是有多个的。
只展示下拉刷新部分的伪代码,解决方案如下:
- 将原先的数据清空
- 然后调用瀑布流组件的 refresh()
- 然后在调用重新获取数据的相关函数
- 最后再次调用瀑布流组件的 refresh()
async function onPullUpRefreshe(tab) {
if (tab.refresherTriggered) {
return
}
// 获取某个瀑布流组件, communityWaterfalFlowRefs 存放了所有瀑布流组件的数组
const waterfallFlowRef = communityWaterfalFlowRefs.value[0]
tab.refresherTriggered = true
/**
* 优先重置数据的原因:
* - 防止瀑布流组件下拉刷新的时候出现白屏的问题
* - 解决微信控制台一直打印 slot 重复的警告问题: [Component] More than one slot named "slot1" are found inside a single component instance (in component "uni_modules/custom-waterfalls-flow/components/custom-waterfalls-flow/custom-waterfalls-flow"). The first one was accepted.
*/
tab.data = []
waterfallFlowRef.refresh()
uni.showLoading({
title: '加载中',
mask: true,
})
await reloadData()
nextTick(async () => {
// sleep 是封装的 setTimeout() 函数
await sleep(100)
uni.hideLoading()
waterfallFlowRef.refresh()
tab.refresherTriggered = false
})
}
0 个回复