HarmonyOS @State刷新不了数组里面包含类的字段刷新UI
@Entry
@Component
struct test{
@State baseMarkerData: Array<BeanMarkLayer> = [];
this.baseMarkerData.push(new BeanMarkLayer($r('app.media.personnel_default'), $r('app.media.personnel_select'),
"现场人员", false));
this.baseMarkerData.push(new BeanMarkLayer($r('app.media.monitor_default'), $r('app.media.monitor_select'),
"视频监控", false));
this.baseMarkerData.push(new BeanMarkLayer($r('app.media.car_default'), $r('app.media.car_select'), "救援车辆",
false));
@Builder
ItemMapMarkerLayer(item: BeanMarkLayer, isBold: boolean) {
Column() {
Image(item.isSelect ? item.imageSelect : item.imageNormal)
.width(36)
.height(36)
.borderRadius(18)
.onClick(() => {
item.isSelect = !item.isSelect
})
Text(item.markName)
.fontSize(12)
.fontColor('#333333')
.margin({ top: 5 })
.fontWeight(isBold ? FontWeight.Bold : FontWeight.Normal)
}
.width('auto')
.height('auto')
}
build() {
Row() {
ForEach(this.baseMarkerData, (item: BeanMarkLayer, index) => {
this.ItemMapMarkerLayer(item, true)
})
}
.justifyContent(FlexAlign.SpaceAround)
.width('100%')
.height('auto')
.margin({ top: 10, bottom: 10 })
.padding({ left: 10, right: 10 })
}
}
- 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.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
点击状态是想发生变化但是测试点击好像没变化,原因是什么?
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS @State修饰的数组内部的值变化了,怎么刷新UI?
1314浏览 • 1回复 待解决
HarmonyOS @State修饰@observed装饰的对象, 对象里的数组改变, 不会触发ui刷新
703浏览 • 1回复 待解决
ForEach数组发生改变。UI没刷新
1528浏览 • 1回复 待解决
列表数组中插入数据后,刷新UI的问题
930浏览 • 1回复 待解决
HarmonyOS 嵌套数组元素的UI刷新方案
926浏览 • 1回复 待解决
HarmonyOS 如何获取uris数组里面的全部图片
453浏览 • 1回复 待解决
HarmonyOS @State数组属性跳转路由后再次回到当前页面,在onPageShow里面赋值页面不刷新
628浏览 • 1回复 待解决
HarmonyOS 数组对象数据刷新
738浏览 • 1回复 待解决
HarmonyOS 关于对象数组内容变更不会引起UI刷新
1561浏览 • 0回复 待解决
HarmonyOS LazyForEach在现有的数组的开头位置增加数组数据,如何刷新UI
453浏览 • 1回复 待解决
UI预览不会自动刷新, 且刷新较慢
1770浏览 • 1回复 待解决
HarmonyOS UI不刷新
703浏览 • 1回复 待解决
使用@State修饰的数组对象,改变其中的某个对象的变量,自定义组件中的UI没有跟着刷新
1549浏览 • 1回复 待解决
HarmonyOS 主线程刷新UI
1038浏览 • 1回复 待解决
postgresql json 字段值为数组,怎么查询数组包含指定元素的数据?
16700浏览 • 1回复 待解决
HarmonyOS 对象数组在@state修饰时,对象属性变化界面不刷新的解决办法
776浏览 • 1回复 待解决
刷新显示状态,希望自定义一个刷新组件,通过刷新状态的不同显示不同字段包括下拉刷新,释放刷新
1375浏览 • 1回复 待解决
HarmonyOS 如何让自定义类中的属性变化引起UI刷新?
935浏览 • 1回复 待解决
postgresql json 字段值为数组形式,怎么查询数组包含指定元素的数据?
6250浏览 • 1回复 待解决
HarmonyOS LazyForEach问题刷新UI问题
813浏览 • 1回复 待解决
HarmonyOS @builder方法的ui不刷新
1020浏览 • 1回复 待解决
HarmonyOS 对象A数组,对象A中又嵌套一个对象B数组,修改B中的属性UI,不刷新
1277浏览 • 1回复 待解决
HarmonyOS HashMap中放入数组,数组数据发生改变时如增加或者删除元素,如何触发UI刷新
511浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
971浏览 • 1回复 待解决
HarmonyOS 是否有种主动刷新UI的方法
664浏览 • 1回复 待解决
@State装饰的变量只能监听到对象本身及其第一层属性的变化。因此当数组中包含类对象时,@State无法直接刷新这些类对象的字段,需要使用@Observed和@ObjectLink来实现深度观测,文档参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkui-212-V5