fix(harmony): 首次加载延迟300ms确保scroll-view渲染就绪后再请求数据
根因分析(最终结论): - H5/微信:API请求需200~500ms,此时scroll-view已完成首次渲染,数据正常显示 - 鸿蒙元服务:API响应极快(<50ms),抢在scroll-view首次渲染完成前返回数据 - mescroll在slot内容未渲染时测得高度为0 → 列表不可见 - 点击排序之所以能显示,是因为第二次load时DOM已完全稳定 修复方案: - 将getGoodsList拆分为getGoodsList(入口) + _doGetGoodsList(实际逻辑) - MP-HARMONY环境下首次加载延迟300ms,确保scroll-view DOM就绪 - 后续翻页/刷新/排序操作不延迟,保持原有体验 - 配合scrollTo(0,0)作为双重保险强制重新测量内容高度
This commit is contained in:
@@ -206,6 +206,20 @@ export default {
|
||||
});
|
||||
},
|
||||
getGoodsList(mescroll) {
|
||||
// #ifdef MP-HARMONY
|
||||
// 鸿蒙元服务API响应极快,可能抢在scroll-view首次渲染完成之前返回数据
|
||||
// 导致mescroll测得内容高度为0,列表不可见。首次加载延迟300ms确保DOM就绪。
|
||||
if (!this._harmonyFirstLoadDone) {
|
||||
this._harmonyFirstLoadDone = true;
|
||||
setTimeout(() => {
|
||||
this._doGetGoodsList(mescroll);
|
||||
}, 300);
|
||||
return;
|
||||
}
|
||||
// #endif
|
||||
this._doGetGoodsList(mescroll);
|
||||
},
|
||||
_doGetGoodsList(mescroll) {
|
||||
this.$api.sendRequest({
|
||||
url: '/api/goodssku/page',
|
||||
data: {
|
||||
|
||||
Reference in New Issue
Block a user