HarmonyOS lazyForeach嵌套视图问题

使用LazyForEach新增嵌套内容,视图刷新,但是修改不刷新。

HarmonyOS
2024-10-17 09:44:05
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

请参考以下代码,数据源transcriptionResults是按照提供的数据结构构造:

@Entry  
@Component  
struct IndexList {  
  @State recordFiles: CommDataSource<ParagraphInfo<ParagraphItemInfo>> = new CommDataSource();  
  aboutToAppear() {  
    for (let i = 0; i < transcriptionResults.length; i++) {  
      this.recordFiles.pushData(transcriptionResults[i])  
    }  
  }  
  @Builder  
  myMenu() {  
    Column() {  
      Text("增")  
        .fontSize(18)  
        .width('100%')  
        .textAlign(TextAlign.Center)  
        .padding({ top: 5, bottom: 5 })  
        .border({  
          width: { bottom: 0.5 },  
          color: 0xcccccc  
        })  
        .onClick(() => {  
          this.recordFiles.pushData(transcriptionResults[0]);  
        })  
      Text("删")  
        .fontSize(18)  
        .width('100%')  
        .textAlign(TextAlign.Center)  
        .padding({ top: 5, bottom: 5 })  
        .border({  
          width: { bottom: 0.5 },  
          color: 0xcccccc  
        })  
        .onClick(() => {  
          this.recordFiles.deleteData(this.recordFiles.totalCount() - 1)  
        })  
      Text("改")  
        .fontSize(18)  
        .width('100%')  
        .textAlign(TextAlign.Center)  
        .padding({ top: 5, bottom: 5 })  
        .border({  
          width: { bottom: 0.5 },  
          color: 0xcccccc  
        })  
        .onClick(() => {  
          console.log('cwq recordFiles update totalCount ' + (this.recordFiles.totalCount()))  
          let targetArray = this.recordFiles.getDatas()[this.recordFiles.totalCount()-1];  
          this.recordFiles.notifyDataChange(this.recordFiles.totalCount() - 1)  
        })  
    }  
    .width(100)  
    .borderRadius(15)  
  }  
  build() {  
    Stack() {  
      List() {  
        LazyForEach(this.recordFiles, (item: ParagraphInfo<ParagraphItemInfo>) => {  
          ListItem() {  
            ParagraphItem({ itemInfo: item })  
          }  
        }, (item: ParagraphInfo<ParagraphItemInfo>) => JSON.stringify(item))  
      }  
      .cachedCount(3)  
      .listDirection(Axis.Vertical) // 排列方向  
      .scrollBar(BarState.Off)  
      .friction(0.6)  
      .divider({  
        strokeWidth: 2,  
        color: Color.White,  
      }) // 每行之间的分界线  
      .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring  
      .width('100%')  
      .height('100%')  
  
      Button('菜单', { type: ButtonType.Circle, stateEffect: true })  
        .backgroundColor(0x409eff)  
        .width(50)  
        .height(50)  
        .bindMenu(this.myMenu)  
    }  
    .width('100%')  
    .height('100%')  
    .backgroundColor(0xDCDCDC)  
    .padding({ top: 5 })  
  }  
}  
@Reusable  
@Component  
export struct ParagraphItem {  
  @ObjectLink itemInfo: ParagraphInfo<ParagraphItemInfo>;  
  build() {  
    Text() {  
      ForEach(this.itemInfo, (item: ParagraphItemInfo) => {  
        Span(item.content)  
      },  
        (item: ParagraphItemInfo) => JSON.stringify(item))  
    }  
    .width('100%')  
    .fontSize(16)  
    .textAlign(TextAlign.Start)  
    .backgroundColor(0xFFFFFF)  
  }  
}  
@Observed  
class ParagraphInfo<T> extends Array<T> {  
}  
class ParagraphItemInfo {  
  startTime: number = 0;  
  endTime: number = 0;  
  content: string = "";  
  index: number = 0;  
  recordTime: string = "";  
  isHighlight: boolean = false;  
}
分享
微博
QQ
微信
回复
2024-10-17 15:27:08
相关问题
HarmonyOS LazyForEach问题刷新UI问题
38浏览 • 1回复 待解决
HarmonyOS swiper + LazyForEach使用问题
313浏览 • 1回复 待解决
HarmonyOS lazyForEach数据应用问题
38浏览 • 1回复 待解决
HarmonyOS Grid容器视图更新问题
513浏览 • 1回复 待解决
HarmonyOS Scroll 嵌套 RelativeContainer 问题
500浏览 • 1回复 待解决
HarmonyOS WaterFlow嵌套问题
45浏览 • 1回复 待解决
HarmonyOS Tabs嵌套Grid问题
57浏览 • 1回复 待解决
HarmonyOS 组件嵌套问题
387浏览 • 1回复 待解决
HarmonyOS ArkUI 嵌套组件问题
45浏览 • 1回复 待解决
HarmonyOS Scroll嵌套RelativeContainer 问题
329浏览 • 1回复 待解决
HarmonyOS 嵌套滑动问题
358浏览 • 1回复 待解决
HarmonyOS LazyForEach
342浏览 • 1回复 待解决
HarmonyOS 嵌套Class状态观察问题
49浏览 • 1回复 待解决
HarmonyOS list 嵌套web滑动切换问题
490浏览 • 1回复 待解决
HarmonyOS Tabs组件嵌套Tabs组件问题
821浏览 • 1回复 待解决
HarmonyOS scroll嵌套多个web,显示问题
52浏览 • 1回复 待解决
HarmonyOS Refresh组件嵌套滑动冲突问题
1002浏览 • 1回复 待解决
使用LazyForEach懒加载列表相关问题
876浏览 • 1回复 待解决