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个list,在点击第3个list里面的onclick事件时,为什么第2个list不刷新UI
2,如果只有第1和第3个list, 在点击第3个list里面的onclick事件时,第1个list会刷新UI,但是watch没有监听到数据源的变化
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 解析Json数据添加到数据源不刷新UI
1115浏览 • 2回复 待解决
HarmonyOS IDataSource数据源刷新后,列表为不刷新
784浏览 • 1回复 待解决
HarmonyOS TextPickerDialog数据源更新,UI不更新
479浏览 • 1回复 待解决
HarmonyOS LazyForEach无法检测数据源的变化进行重新渲染
463浏览 • 1回复 待解决
HarmonyOS ForEach数据源属性修改,页面不刷新
389浏览 • 1回复 待解决
HarmonyOS LazyForEach修改数据源不刷新问题
1130浏览 • 1回复 待解决
当网络请求的数据源对象的内容发生变更后,所有图片都会一闪而过;如果数据源的内容没变,就不会发生
833浏览 • 1回复 待解决
HarmonyOS 如何监听到音频焦点的变化
525浏览 • 1回复 待解决
HarmonyOS 使用LazyForEach,数据源传不进来,UI不更新
457浏览 • 1回复 待解决
HarmonyOS @Builde修饰器内, 如何监听到isNormalMode的数据变化
300浏览 • 1回复 待解决
HarmonyOS Photo Picker组件数据源赋值问题咨询
457浏览 • 1回复 待解决
关于使用foreach&lazyforeach更改数据源界面不刷新的问题
1537浏览 • 2回复 待解决
HarmonyOS State的变量无法监听到值的变化
590浏览 • 1回复 待解决
HarmonyOS picker选择器的数据源问题
395浏览 • 1回复 待解决
lazyforeach替换数据源解决方案
1280浏览 • 1回复 待解决
Foreach循环渲染,数据源改变时的重复渲染
1520浏览 • 1回复 待解决
IF条件变化后UI不刷新
1083浏览 • 1回复 待解决
HarmonyOS 通过子组件调用父组件方法修改父组件的值后,如何显示以及动态刷新父组件bindsheet标题栏的UI
455浏览 • 1回复 待解决
HarmonyOS Tabs展示完毕后,修改数据源后,Tabs内容无法刷新,请问如何处理
300浏览 • 1回复 待解决
HarmonyOS IDataSource支持数据源整体一次替换
1175浏览 • 1回复 待解决
HarmonyOS TextPicker多列选择器数据源的构造问题
273浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理HarmonyOS NEXT中轮播图的数据源?
451浏览 • 1回复 待解决
#鸿蒙学习大百科#如何实现父组件尺寸发生变化,但是子组件的宽高比不变化?
609浏览 • 0回复 待解决
HarmonyOS 发现子组件可以通过Watch装饰器监听父组件的变量的变化,有反过来的监听吗?
438浏览 • 2回复 待解决
HarmonyOS Swiper使用LazyForEach,在数据源更新后,页面闪烁
599浏览 • 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