HarmonyOS UI不刷新
@Observed
export class FaultReportSortItemBean {
  @Track dValue?:string
  @Track dKey?:string
  @Track id?:string
  @Track ifSelected?:boolean = false
}
父组件里:
@State sortItemArr: Array<FaultReportSortItemBean> = []
FaultReportViewModel.getCouponList(map, true, true, true).then(res => {
  let array = res.data as Array<FaultReportSortItemBean>
  for (let index = 0; index < array.length; index++) {
    const element = array[index];
    this.sortItemArr.push(element!)//获取到数据push进去
  }
})
Grid() {
  ForEach(this.sortItemArr, (itemModel: FaultReportSortItemBean, index: number) => {
    GridItem() {
      sortItemView({ itemModel: itemModel })
    }
    .width('calc(50% - 5vp)')
    .height(36)
    .onClick(() => {
      itemModel.ifSelected = !itemModel.ifSelected//不会刷新子组件里的ui
    })
  })
}
子组件:
@Component
export struct sortItemView {
  @ObjectLink itemModel: FaultReportSortItemBean
  build() {
    Column() {
      Button(this.itemModel.dKey, { type: ButtonType.Normal, stateEffect: false })
        .height('100%')
        .width('100%')
        .fontColor(this.itemModel.ifSelected == true ? Color.White : '#999999')
        .fontSize(14)
        .backgroundColor(Color.Transparent)
        .borderWidth(this.itemModel.ifSelected == true ? 0 : 1)
        .borderColor(this.itemModel.ifSelected == true ? Color.Transparent : '#999999')
        .borderRadius(10)
      Image(this.itemModel.ifSelected == true ? $r('app.media.btnCommon') : '')
    }
    .width('100%')
    .height('100%')
  }
}
为什么点击事件不刷新ui
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS LIst组件UI不刷新 
944浏览  • 1回复 待解决
HarmonyOS UI不刷新问题 
1179浏览  • 1回复 待解决
HarmonyOS 更新数据后UI不刷新 
1631浏览  • 1回复 待解决
IF条件变化后UI不刷新 
1682浏览  • 1回复 待解决
HarmonyOS @builder方法的ui不刷新 
1933浏览  • 1回复 待解决
状态装饰器 ui不刷新的问题 
3569浏览  • 1回复 待解决
使用LazyForEach渲染语法渲染组件,UI不刷新。 
2634浏览  • 1回复 待解决
HarmonyOS 懒加载列表更改属性UI不刷新 
1323浏览  • 1回复 待解决
修改ForEach使用的数据对象,UI不刷新 
4668浏览  • 1回复 待解决
HarmonyOS能否实现服务卡片刷新卡片UI不拉起应用 
1688浏览  • 1回复 待解决
HarmonyOS 解析Json数据添加到数据源不刷新UI 
1936浏览  • 2回复 待解决
HarmonyOS 复杂数据类型变更,UI不刷新,该如何解决? 
1597浏览  • 1回复 待解决
列表里LazyForEach中多层模型嵌套,更改数据UI不刷新 
1686浏览  • 0回复 待解决
HarmonyOS 主线程刷新UI 
1616浏览  • 1回复 待解决
HarmonyOS LazyForEach问题刷新UI问题 
1327浏览  • 1回复 待解决
UI预览不会自动刷新, 且刷新较慢 
2772浏览  • 1回复 待解决
HarmonyOS使用@ObjectLink 数据不刷新 
1850浏览  • 2回复 待解决
HarmonyOS UI 未刷新问题 
1798浏览  • 1回复 待解决
HarmonyOS @Builder UI刷新问题 
1067浏览  • 1回复 待解决
HarmonyOS 如何在页面刷新时保持某组件不刷新 
861浏览  • 1回复 待解决
HarmonyOS IDataSource数据源刷新后,列表为不刷新 
1856浏览  • 1回复 待解决
HarmonyOS  卡片更新图片不刷新 
1252浏览  • 1回复 待解决
HarmonyOS UI和ViewModel如何刷新数据 
1012浏览  • 1回复 待解决
求告知如何强制刷新UI? 
1712浏览  • 1回复 待解决
HarmonyOS 装饰器不刷新问题 
1208浏览  • 1回复 待解决





















可以用Repeat来代替foreach,下面是实现的demo:
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-rendering-control-repeat-V5