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
})
}
- 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.
HarmonyOS
赞
收藏 0
回答 1
相关问题
ForEach数组发生改变。UI没刷新
1230浏览 • 1回复 待解决
HarmonyOS LazyForEach在现有的数组的开头位置增加数组数据,如何刷新UI
265浏览 • 1回复 待解决
数组中元素变更如何触发刷新list?
581浏览 • 1回复 待解决
HarmonyOS 数组元素删除之后 未进行页面刷新
475浏览 • 1回复 待解决
HarmonyOS 数组怎么删除/批量删除/插入元素
961浏览 • 1回复 待解决
HarmonyOS @State修饰@observed装饰的对象, 对象里的数组改变, 不会触发ui刷新
426浏览 • 1回复 待解决
HarmonyOS 嵌套数组元素的UI刷新方案
705浏览 • 1回复 待解决
数据结构嵌套二维数组的情况下,如何监测数组数据的变化触发UI的刷新?
788浏览 • 1回复 待解决
HarmonyOS 数组对象数据刷新
466浏览 • 1回复 待解决
列表数组中插入数据后,刷新UI的问题
649浏览 • 1回复 待解决
HarmonyOS 如何删除数组中的某一个item,删除后同步刷新UI
555浏览 • 1回复 待解决
HarmonyOS 当UI组件visibility发生改变时,会触发哪些生命周期
139浏览 • 1回复 待解决
HarmonyOS JSVM缺少获取数组元素设置数组元素的接口
190浏览 • 1回复 待解决
HarmonyOS 嵌套一层的数组无法监听相同数据增加,但是无嵌套的数组可以监听相同数据增加
494浏览 • 1回复 待解决
readonly修饰的数组无法获取数组元素
2651浏览 • 1回复 待解决
@Observed中的数组变化无法触发界面刷新
1489浏览 • 1回复 待解决
如果数组的个数不变,只有某个字段发生了改变,@Observed @ObjectLink的组合是无法触发UI更新的,如何解决
697浏览 • 1回复 待解决
postgresql json 字段值为数组,怎么查询数组包含指定元素的数据?
16136浏览 • 1回复 待解决
@State装饰嵌套结构的变量时,为什么嵌套结构中数组元素增加或减少时界面不会刷新
2857浏览 • 1回复 待解决
HarmonyOS 如何实现根据数组元素对象属性的变化同步更新UI
498浏览 • 1回复 待解决
关于JS的垃圾回收机制,在数组中删除所有元素和直接把数组指向成空数组,哪个方式更好
2056浏览 • 1回复 待解决
postgresql json 字段值为数组形式,怎么查询数组包含指定元素的数据?
6023浏览 • 1回复 待解决
HarmonyOS viewModel中获取数组数据,怎么更新ui
244浏览 • 1回复 待解决
HarmonyOS @State刷新不了数组里面包含类的字段刷新UI
316浏览 • 1回复 待解决
HarmonyOS 如何监听数组元素属性的变化?
1068浏览 • 1回复 待解决
参考以下demo: