HarmonyOS ForEach列表刷新问题

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

HarmonyOS
2024-12-18 15:00:00
浏览
收藏 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%')
  }
}
分享
微博
QQ
微信
回复
2024-12-18 16:52:39
相关问题
HarmonyOS 列表刷新问题
927浏览 • 1回复 待解决
HarmonyOS ForEach创建的视图刷新问题
308浏览 • 1回复 待解决
HarmonyOS 页面刷新问题
686浏览 • 1回复 待解决
HarmonyOS webview刷新问题
377浏览 • 2回复 待解决
HarmonyOS 组件刷新问题
386浏览 • 1回复 待解决
HarmonyOS 数据刷新问题
316浏览 • 1回复 待解决
HarmonyOS LazyForEach数据刷新问题
285浏览 • 1回复 待解决
HarmonyOS 页面数据刷新问题
281浏览 • 1回复 待解决
HarmonyOS List item 刷新问题
1114浏览 • 1回复 待解决
NativeWindowFlushBuffer接口刷新问题
2189浏览 • 1回复 待解决
HarmonyOS @Builder UI刷新问题
340浏览 • 1回复 待解决
HarmonyOS UI不刷新问题
432浏览 • 1回复 待解决
HarmonyOS UI 未刷新问题
958浏览 • 0回复 待解决
HarmonyOS 页面跳转刷新问题
1442浏览 • 1回复 待解决
HarmonyOS swiper数据刷新问题
268浏览 • 1回复 待解决
HarmonyOS使用Refresh下拉刷新问题
1219浏览 • 1回复 待解决
HarmonyOS 组件的下拉刷新问题
890浏览 • 1回复 待解决
HarmonyOS 装饰器不刷新问题
500浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
699浏览 • 1回复 待解决
HarmonyOS 自定义弹窗刷新问题
309浏览 • 1回复 待解决
HarmonyOS ForEach局部刷新
974浏览 • 1回复 待解决
HarmonyOS 状态变量不刷新问题
957浏览 • 1回复 待解决