1***@qq.com
1***@qq.com
  • 发布:2023-10-19 13:35
  • 更新:2023-10-19 14:53
  • 阅读:729

【报Bug】下拉加载更多组件 uni-load-more 如果更新状态太快 h5 端会报错

分类:uni-app

接口响应15毫秒,使用 setTimeout 模拟 15 毫秒,多刷新页面几次就会报错,setTimeout 调成 100 毫秒基本没有问题。

Uncaught TypeError: Cannot read properties of null (reading 'offsetWidth')
at uni-h5.es.js:7052:25
at callWithErrorHandling (vue.runtime.esm.js:1375:22)
at callWithAsyncErrorHandling (vue.runtime.esm.js:1384:21)
at HTMLDivElement.invoker (vue.runtime.esm.js:9729:9)

2023-10-19 13:35 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

应该是你直接写在setup中执行的太快了 组件都没渲染完就执行了
你放到onLoad onReady中 试试

复制代码import {onLoad,onReady} from '@dcloudio/uni-app'  
onLoad(() => {  
    // 改变组件初始状态  
    loadingStatus.value = 'loading'  
    // 模拟接口响应  
    setTimeout(() => {  
        loadingStatus.value = 'more'  
    },15)  
})
  • 1***@qq.com (作者)

    这种我也试了,一样会报错,不过我用 vue2创建项目写同样的代码不报错,在 vue3 中就报错,最后解决只展示文字,要是再报错,只能直接写一个改文字就可以了

    2023-10-19 19:11

1***@qq.com

1***@qq.com (作者)

参照 https://ask.dcloud.net.cn/question/170612
感觉是图片的问题,把 loading 图关掉就不报错了
uni-load-more 的 showIcon 改成 false

要回复问题请先登录注册

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容