HarmonyOS list组件中onReachEnd方法在onappear之后就会立刻执行一次

正常情况不是应该用户滑动到底部时才会触发onappear吗?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

onappear和是否挂载有关系,只要是页面挂载了就会触发,和是否滑到底部没有关系,onReachEnd是list滑到末尾时才会触发。可以新建一个字段根据字段判断是否为初始值,若是初始值则不触发onReachEnd,示例参考如下:

@Entry
@Component
struct ListDemo {
  @State arr: number[] = [];
  @State count: number = 0;

  queryArr() {
    for (let i = 1; i < 9; i++) {
      this.arr.push(this.count * 8 + i);
    }
  }

  aboutToAppear(): void {
    this.queryArr();
  }

  build() {
    Column() {
      Text('刷新').fontSize(50)
        .height("50%")
        .onClick(() => {
          this.count++;
          this.queryArr()
        })

      List({ space: 10 }) {
        ForEach(this.arr, (item: number) => {
          ListItem() {
            Text(`${item}`)
              .width('100%')
              .height(100)
              .fontSize(20)
              .fontColor(Color.White)
              .textAlign(TextAlign.Center)
              .borderRadius(10)
              .backgroundColor(0x007DFF)
          }
        }, (item: number) => JSON.stringify(item))
      }
      .onAppear(() => {
        console.log('onAppear')
      })
      .onReachEnd(() => {
        if (this.count === 0) {
          return;
        }
        console.log('onReachEnd')
      })
    }
    .padding(12)
    .height('100%')
    .backgroundColor(0xF1F3F5)
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 每秒执行一次的函数
193浏览 • 2回复 待解决
HarmonyOS setInterval如何立即执行一次
61浏览 • 1回复 待解决
HarmonyOS web组件拦截每一次跳转
26浏览 • 1回复 待解决
HarmonyOS flutter run 会自动uninstall 一次
134浏览 • 1回复 待解决
HarmonyOS里面不能一次创建多级目录
470浏览 • 1回复 待解决
动画如何做渲染一次不消失
7741浏览 • 1回复 待解决
有没有一次编译,多端部署的资料
366浏览 • 1回复 待解决
根据一次开发多端部署开发短信页面
1228浏览 • 1回复 待解决