HarmonyOS 父组件的数据源监听到没变化,但是UI刷新了
@Entry
@Component
struct StateCompenent01Page {
@State @Watch("Changed") showStrArr: Array<ShowMessageModel> = []
aboutToAppear(): void {
let model01: ShowMessageModel = new ShowMessageModel('我是展示文字01')
this.showStrArr.push(model01)
let model02: ShowMessageModel = new ShowMessageModel('我是展示文字02')
this.showStrArr.push(model02)
let model03: ShowMessageModel = new ShowMessageModel('我是展示文字03')
this.showStrArr.push(model03)
}
Changed() {
console.info('我变了呀')
this.showStrArr.forEach((model: ShowMessageModel) => {
console.info(model.showStr)
})
}
build() {
Column() {
List() {
Repeat<ShowMessageModel>(this.showStrArr)
.each((obj: RepeatItem<ShowMessageModel>) => {
ListItem() {
Text() {
Span(obj.item.showStr)
Span(obj.item.ifSelected == true ? '选中' : '未选中')
}
}
})
}
List() {
ForEach(this.showStrArr, (itemModel: ShowMessageModel, index: number) => {
ListItem() {
Text() {
Span(itemModel.showStr)
Span(itemModel.ifSelected == true ? '选中' : '未选中')
}
}
}, (item: ShowMessageModel): string => item.ifSelected.toString()
)
}
.margin({
top: 20
})
List() {
ForEach(this.showStrArr, (itemModel: ShowMessageModel, index: number) => {
ListItem() {
ItemView({ itemModel: this.showStrArr[index] })
}
}, (item: ShowMessageModel): string => item.ifSelected.toString()
)
}
.margin({
top: 20
})
}
}
}
- 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.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
有两个疑问
1,如果只有第2和第3个list,在点击第3个list里面的onclick事件时,为什么第2个list不刷新UI
2,如果只有第1和第3个list, 在点击第3个list里面的onclick事件时,第1个list会刷新UI,但是watch没有监听到数据源的变化
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS 解析Json数据添加到数据源不刷新UI
1488浏览 • 2回复 待解决
HarmonyOS IDataSource数据源刷新后,列表为不刷新
1271浏览 • 1回复 待解决
HarmonyOS ForEach数据源属性修改,页面不刷新
787浏览 • 1回复 待解决
HarmonyOS TextPickerDialog数据源更新,UI不更新
885浏览 • 1回复 待解决
HarmonyOS LazyForEach无法检测数据源的变化进行重新渲染
844浏览 • 1回复 待解决
HarmonyOS LazyForEach修改数据源不刷新问题
1680浏览 • 1回复 待解决
当网络请求的数据源对象的内容发生变更后,所有图片都会一闪而过;如果数据源的内容没变,就不会发生
1089浏览 • 1回复 待解决
HarmonyOS 使用LazyForEach,数据源传不进来,UI不更新
955浏览 • 1回复 待解决
HarmonyOS @Builde修饰器内, 如何监听到isNormalMode的数据变化
581浏览 • 1回复 待解决
HarmonyOS Photo Picker组件数据源赋值问题咨询
821浏览 • 1回复 待解决
HarmonyOS 如何监听到音频焦点的变化
815浏览 • 1回复 待解决
lazyforeach替换数据源解决方案
1683浏览 • 1回复 待解决
关于使用foreach&lazyforeach更改数据源界面不刷新的问题
2018浏览 • 2回复 待解决
HarmonyOS picker选择器的数据源问题
812浏览 • 1回复 待解决
HarmonyOS State的变量无法监听到值的变化
982浏览 • 1回复 待解决
HarmonyOS IDataSource支持数据源整体一次替换
1606浏览 • 1回复 待解决
HarmonyOS Tabs展示完毕后,修改数据源后,Tabs内容无法刷新,请问如何处理
599浏览 • 1回复 待解决
HarmonyOS TextPicker多列选择器数据源的构造问题
603浏览 • 1回复 待解决
Foreach循环渲染,数据源改变时的重复渲染
1927浏览 • 1回复 待解决
异步回调更新数据源,无法触发列表渲染
3800浏览 • 2回复 待解决
HarmonyOS Swiper使用LazyForEach,在数据源更新后,页面闪烁
1132浏览 • 1回复 待解决
IF条件变化后UI不刷新
1387浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理HarmonyOS NEXT中轮播图的数据源?
765浏览 • 1回复 待解决
HarmonyOS 通过子组件调用父组件方法修改父组件的值后,如何显示以及动态刷新父组件bindsheet标题栏的UI
925浏览 • 1回复 待解决
如何解决使用foreach&lazyforeach循环渲染时,会出现更改数据源时,界面不刷新的问题
1835浏览 • 1回复 待解决
增强状态管理对类对象中属性的观测能力,可以使用@ObservedV2装饰器和@Trace装饰器装饰类以及类中的属性可参考demo:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-new-observedv2-and-trace-V5#%E5%B5%8C%E5%A5%97%E7%B1%BB%E5%9C%BA%E6%99%AF