HarmonyOS的Swiper 数据为空导致页面崩溃的解决办法

文章讲述了在使用DevEcoStudio3.1.1版本时,开发者遇到API9获取数据后轮播图组件显示问题,导致浏览器卡死或模拟器闪退。通过添加Swiper外层判断解决了此问题,同时提及了已将问题反馈给官方。
摘要由CSDN通过智能技术生成

当前: api9 DevEco Studio 3.1.1 Release

@Entry
@Component
struct Index {
  // 定义接口返回的轮播图数据
  @State HospitalPropaganda: string[]  = []
  private swiperController: SwiperController = new SwiperController()
  async aboutToAppear() {
    this.getOrgInfo()
  }
  private getOrgInfo = async () => {
    try {
      const res = await this.httpBaskData()
      this.HospitalPropaganda = res
    } catch (err) {
      console.log('err111', err)
    }
  }
  // 模拟接口返回数据
  private httpBaskData = (): Promise<string[]> => {
    return new Promise((res,rej) => {
      setTimeout(() => {
        res(['https://hwkjoss-kfx-biz-dev.oss-cn-hangzhou.aliyuncs.com/6395399560128654336.jpg', 'https://hwkjoss-kfx-biz-dev.oss-cn-hangzhou.aliyuncs.com/6395399560128654336.jpg'])
      },1000)
    })
  }

  build() {
    Column() {
      Text('this.HospitalPropaganda的数据是:-----')
      ForEach(this.HospitalPropaganda, (item: string) => {
        Text(item)
      })
      Text('Swiper:-----')
      // if (this.HospitalPropaganda.length > 0) {
        Swiper(this.swiperController) {
          ForEach(this.HospitalPropaganda, (item: string) => {
            Image(item) // https://hwkjoss-kfx-biz-dev.oss-cn-hangzhou.aliyuncs.com/6395399560128654336.jpg
              .width('100%').height('100%').objectFit(ImageFit.Fill)
          })
          // Image('https://hwkjoss-kfx-biz-dev.oss-cn-hangzhou.aliyuncs.com/6395399560128654336.jpg')
        }
        .width('100%')
        .height(100)
        .cachedCount(2)
        .index(1)
        .autoPlay(true)
        .interval(4000)
        .indicator(true)
        .loop(true)
        .duration(1000)
        .itemSpace(0)
        .curve(Curve.Linear)
      // }
    }
    .width('100%')
    .height('100%')
    .backgroundColor('#F7F7F7')
  }
}

运行以上代码 预览器卡死;模拟器直接闪退;真机没有试过

已经反馈给官方:

解决办法:

在Swiper最外层加一个if判断

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多喜乐 长安宁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值