HarmonyOS HashMap中放入数组,数组数据发生改变时如增加或者删除元素,如何触发UI刷新
定义一个HashMap:
@State allChannelsMaps: HashMap<string, Array<ChannelGroupDataChannelList>> = new HashMap();
UI布局如下:
List(){
          ForEach(this.channelTypeList, (channelData: ChannelTypeEntityData, index: number) =>{
            ListItem(){
              this.channelGrid(this.allChannelsMaps.get(channelData.channelType?.toString()),
                index,)
            }
          })
        }.width('100%')
.height('100%')
@Builder channelGrid(channelGroupData: Array<ChannelGroupDataChannelList>, index: number){
Grid(){
          ForEach(channelGroupData, (channel: ChannelGroupDataChannelList, index: number) =>{
            GridItem() {
              Text(channel.channelName)
                .fontSize((channel.channelName ?? '').length > 5 ? '11fp': '15fp')
                .fontColor($r('app.color.color202022'))
                .fontFamily(CommonConstants.SI_YUAN)
                .textAlign(TextAlign.Center)
                .width(this.itemWidth)
                .height(this.itemHeight)
                .backgroundColor($r('app.color.colorF9F9F9'))
                .borderRadius(4)
                .onClick(() =>{
                  const tapChannel: ChannelGroupDataChannelList = channelGroupData[index];
                  this.addChannelUpdateMap(tapChannel);
                })
            }
          })
        }
        .columnsTemplate('1fr 1fr 1fr 1fr')
        .columnsGap(10)
        .rowsGap(10)
        .height(this.channelTypeList[index].channelHeight)
        .nestedScroll({
          scrollForward: NestedScrollMode.PARENT_FIRST,
          scrollBackward: NestedScrollMode.SELF_FIRST
        })
}
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 ForEach数组发生改变。UI没刷新 
2116浏览  • 1回复 待解决
HarmonyOS LazyForEach在现有的数组的开头位置增加数组数据,如何刷新UI 
824浏览  • 1回复 待解决
HarmonyOS  数组元素删除之后 未进行页面刷新 
1197浏览  • 1回复 待解决
数组中元素变更如何触发刷新list? 
1155浏览  • 1回复 待解决
HarmonyOS  @State修饰@observed装饰的对象, 对象里的数组改变, 不会触发ui刷新 
1300浏览  • 1回复 待解决
HarmonyOS  嵌套数组元素的UI刷新方案 
1355浏览  • 1回复 待解决
HarmonyOS 数组怎么删除/批量删除/插入元素 
3302浏览  • 1回复 待解决
数据结构嵌套二维数组的情况下,如何监测数组数据的变化触发UI的刷新? 
1330浏览  • 1回复 待解决
HarmonyOS 数组对象数据刷新 
1096浏览  • 1回复 待解决
HarmonyOS 如何删除数组中的某一个item,删除后同步刷新UI 
2314浏览  • 1回复 待解决
列表数组中插入数据后,刷新UI的问题 
1420浏览  • 1回复 待解决
HarmonyOS 当UI组件visibility发生改变时,会触发哪些生命周期 
622浏览  • 1回复 待解决
HarmonyOS 嵌套一层的数组无法监听相同数据增加,但是无嵌套的数组可以监听相同数据增加 
1045浏览  • 1回复 待解决
HarmonyOS JSVM缺少获取数组元素设置数组元素的接口 
832浏览  • 1回复 待解决
如果数组的个数不变,只有某个字段发生了改变,@Observed @ObjectLink的组合是无法触发UI更新的,如何解决 
1280浏览  • 1回复 待解决
postgresql json 字段值为数组,怎么查询数组包含指定元素的数据? 
17411浏览  • 1回复 待解决
@State装饰嵌套结构的变量时,为什么嵌套结构中数组元素增加或减少时界面不会刷新 
3458浏览  • 1回复 待解决
@Observed中的数组变化无法触发界面刷新 
2310浏览  • 1回复 待解决
readonly修饰的数组无法获取数组元素 
3562浏览  • 1回复 待解决
HarmonyOS 如何实现根据数组元素对象属性的变化同步更新UI 
1402浏览  • 1回复 待解决
HarmonyOS viewModel中获取数组数据,怎么更新ui 
976浏览  • 1回复 待解决
postgresql json 字段值为数组形式,怎么查询数组包含指定元素的数据? 
6904浏览  • 1回复 待解决
关于JS的垃圾回收机制,在数组中删除所有元素和直接把数组指向成空数组,哪个方式更好 
2801浏览  • 1回复 待解决
HarmonyOS @State刷新不了数组里面包含类的字段刷新UI 
1092浏览  • 1回复 待解决
HarmonyOS  @Watch 如何检测数组内元素变化 
1463浏览  • 1回复 待解决





















参考以下demo: