HarmonyOS ForEach列表刷新问题

列表的刷新后的发布时间没有更新,因为刷新后数据源确实完全一致,但发布时间是通过当前的时间和发布时间的差值计算出来的,例如刚刚发布,2分钟前,1小时前这种,由于forEach只判断数据源是否发生变化,所以刷新后不会更新

HarmonyOS
2024-12-18 15:00:00
1077浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
superinsect

可以尝试将时间差值加进数据源中,刷新时更新时间差,并把时间差作为forEach中keyGenerator的键值。可以实现刷新时重新计算时间差,并更新数据源中的时间差,达到数据源的变化从而更新数据。也可以自定义keyGenerator的键值的差值来实现自定义keyGenerator键值和前面提到的用时间差作为键值是一个意思,也需要循环加入进数据源中。此外还有一种方法,创建两个相同的,切换刷新,具体代码如下:

@Entry
@Component
struct Index {
  @State one: boolean = true;
  @State two: boolean = true;

  build() {
    Row() {
      Column() {
        Row() {
          Text('A')
            .layoutWeight(1)
          if (this.two) {
            Toggle({ type: ToggleType.Switch, isOn: this.one })
              .enabled(!this.two)
              .onChange((isOn) => {
                this.one = isOn;
              })
          } else {
            Toggle({ type: ToggleType.Switch, isOn: this.one })
              .enabled(!this.two)
              .onChange((isOn) => {
                this.one = isOn;
              })
          }
        }

        Row() {
          Text('B')
            .layoutWeight(1)
          Toggle({ type: ToggleType.Switch, isOn: this.two })
            .onChange((isOn) => {
              this.two = isOn;
            })
        }
        .margin({ top: "25vp" })
      }
      .width('100%')
      .margin({ left: '24vp', right: '24vp' })
      .layoutWeight(1)

    }
    .height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
分享
微博
QQ
微信
回复
2024-12-18 16:52:39


相关问题
HarmonyOS 列表刷新问题
1338浏览 • 1回复 待解决
HarmonyOS ForEach创建的视图刷新问题
624浏览 • 1回复 待解决
HarmonyOS 页面刷新问题
1133浏览 • 1回复 待解决
HarmonyOS 组件刷新问题
809浏览 • 1回复 待解决
HarmonyOS webview刷新问题
824浏览 • 2回复 待解决
HarmonyOS 数据刷新问题
783浏览 • 1回复 待解决
HarmonyOS List item 刷新问题
1556浏览 • 1回复 待解决
HarmonyOS LazyForEach数据刷新问题
697浏览 • 1回复 待解决
HarmonyOS 页面数据刷新问题
932浏览 • 1回复 待解决
NativeWindowFlushBuffer接口刷新问题
2557浏览 • 1回复 待解决
HarmonyOS @Builder UI刷新问题
762浏览 • 1回复 待解决
HarmonyOS UI不刷新问题
830浏览 • 1回复 待解决
HarmonyOS 页面跳转刷新问题
2037浏览 • 1回复 待解决
HarmonyOS UI 未刷新问题
1405浏览 • 0回复 待解决
HarmonyOS swiper数据刷新问题
671浏览 • 1回复 待解决
HarmonyOS使用Refresh下拉刷新问题
1548浏览 • 1回复 待解决
HarmonyOS 组件的下拉刷新问题
1262浏览 • 1回复 待解决
HarmonyOS 装饰器不刷新问题
886浏览 • 1回复 待解决
HarmonyOS 自定义弹窗刷新问题
721浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
1097浏览 • 1回复 待解决
HarmonyOS 状态变量不刷新问题
1645浏览 • 1回复 待解决