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没刷新
591浏览 • 1回复 待解决
数组中元素变更如何触发刷新list?
392浏览 • 1回复 待解决
HarmonyOS 嵌套数组元素的UI刷新方案
408浏览 • 1回复 待解决
数据结构嵌套二维数组的情况下,如何监测数组数据的变化触发UI的刷新?
359浏览 • 1回复 待解决
列表数组中插入数据后,刷新UI的问题
358浏览 • 1回复 待解决
HarmonyOS 嵌套一层的数组无法监听相同数据增加,但是无嵌套的数组可以监听相同数据增加
41浏览 • 1回复 待解决
readonly修饰的数组无法获取数组元素
2049浏览 • 1回复 待解决
@Observed中的数组变化无法触发界面刷新
1089浏览 • 1回复 待解决
如果数组的个数不变,只有某个字段发生了改变,@Observed @ObjectLink的组合是无法触发UI更新的,如何解决
304浏览 • 1回复 待解决
@State装饰嵌套结构的变量时,为什么嵌套结构中数组元素增加或减少时界面不会刷新
2683浏览 • 1回复 待解决
postgresql json 字段值为数组,怎么查询数组包含指定元素的数据?
15438浏览 • 1回复 待解决
关于JS的垃圾回收机制,在数组中删除所有元素和直接把数组指向成空数组,哪个方式更好
1781浏览 • 1回复 待解决
postgresql json 字段值为数组形式,怎么查询数组包含指定元素的数据?
5467浏览 • 1回复 待解决
HarmonyOS 如何监听数组元素属性的变化?
472浏览 • 1回复 待解决
HarmonyOS @State修饰的数组内部的值变化了,怎么刷新UI?
315浏览 • 1回复 待解决
HarmonyOS 对象A数组,对象A中又嵌套一个对象B数组,修改B中的属性UI,不刷新
506浏览 • 1回复 待解决
鸿蒙页面检测不到数据发生改变的刷新问题,能否强制刷新
9762浏览 • 1回复 待解决
从外部传入的数组如何动态改变用@Builder里面的数据
252浏览 • 1回复 待解决
如何删除数组中的空值?
373浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
326浏览 • 1回复 待解决
class二次刷新渲染数组
744浏览 • 1回复 待解决
鸿蒙这边如何定义一个数组,数组中元素类型不确定?数组中可能有string、number、boolean等
2174浏览 • 1回复 待解决
使用@ObservedV2装饰器的class,给子组件@Prop装饰的数组传值时,数组变动了,但数组元素的值未拷贝过去
265浏览 • 1回复 待解决
使用@State修饰的数组对象,改变其中的某个对象的变量,自定义组件中的UI没有跟着刷新
840浏览 • 1回复 待解决
HarmonyOS @State标注的二维数组,当元素变更后,选中状态ui未更新
346浏览 • 1回复 待解决
参考以下demo: