HarmonyOS 更新数据后UI不刷新
@Entry
@Component
struct NavRootPage {
@State rootData: RootData = new RootData()
aboutToAppear(): void {
this.rootData.textData = new TextData()
this.rootData.textData.text = "1"
}
build() {
Column() {
CellRoot({ cellData: this.rootData })
Button('change').onClick(() => {
setTimeout(() => {
for (let i = 0; i < 20; i++) {
this.rootData.textData!.text = `${i}`
}
})
})
}
.height('100%')
.width('100%')
}
}
@Builder
function TextCellBuilder() {
TextCell()
}
@Observed
class RootData {
builder: WrappedBuilder<[]> = wrapBuilder(TextCellBuilder)
textData?: TextData
}
@Observed
class TextData {
text?: string | Resource
}
@Component
struct CellRoot {
@Provide cellData: RootData = new RootData()
build() {
this.cellData.builder.builder()
}
}
@Component
struct TextCell {
@Consume cellData: RootData
build() {
Column() {
if (this.cellData.textData) {
TextDemo({ data: this.cellData.textData })
}
}
}
}
@Component
struct TextDemo {
@ObjectLink data: TextData
build() {
Text(this.data.text)
}
}
component和数据包含关系:CellRoot(provide cellData) -> TextCell(consume cellData) -> TextDemo(objectLink data from cellData)
CellRoot应用在列表上,为可复用组件
在ViewModel中创建数据
rootData = new RootData()
rootData.textData = new TextData()
rootData.textData.text = "1"
在处理了一些逻辑之后,手动设置
rootData.textData.text = "2"
UI偶现不刷新,尤其是频繁触发列表刷新的时候
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
IF条件变化后UI不刷新
882浏览 • 1回复 待解决
HarmonyOS TextPickerDialog数据源更新,UI不更新
179浏览 • 1回复 待解决
HarmonyOS UI未在数据更新时刷新
22浏览 • 1回复 待解决
HarmonyOS UI不刷新
215浏览 • 1回复 待解决
HarmonyOS IDataSource数据源刷新后,列表为不刷新
541浏览 • 1回复 待解决
修改ForEach使用的数据对象,UI不刷新
2085浏览 • 1回复 待解决
HarmonyOS 卡片更新图片不刷新
163浏览 • 1回复 待解决
HarmonyOS 解析Json数据添加到数据源不刷新UI
722浏览 • 2回复 待解决
HarmonyOS UI不刷新问题
170浏览 • 1回复 待解决
HarmonyOS LIst组件UI不刷新
21浏览 • 1回复 待解决
HarmonyOS @builder方法的ui不刷新
250浏览 • 1回复 待解决
列表数组中插入数据后,刷新UI的问题
508浏览 • 1回复 待解决
HarmonyOS 使用LazyForEach,数据源传不进来,UI不更新
192浏览 • 1回复 待解决
HarmonyOS 接口请求网络数据返回后,如何通知页面UI数据刷新
226浏览 • 1回复 待解决
HarmonyOS 复杂数据类型变更,UI不刷新,该如何解决?
20浏览 • 1回复 待解决
列表里LazyForEach中多层模型嵌套,更改数据UI不刷新
223浏览 • 0回复 待解决
HarmonyOS使用@ObjectLink 数据不刷新
936浏览 • 2回复 待解决
状态装饰器 ui不刷新的问题
2560浏览 • 1回复 待解决
HarmonyOS UI和ViewModel如何刷新数据
33浏览 • 1回复 待解决
HarmonyOS 如何触发更新自定义组件里的数据并让其刷新UI?
1255浏览 • 1回复 待解决
使用LazyForEach渲染语法渲染组件,UI不刷新。
1293浏览 • 1回复 待解决
HarmonyOS 深色模式切换后界面不刷新
180浏览 • 1回复 待解决
HarmonyOS 懒加载列表更改属性UI不刷新
179浏览 • 1回复 待解决
HarmonyOS 下拉刷新的时候没有更新数据
591浏览 • 1回复 待解决
HarmonyOS eventhub修改model后,不触发页面更新
237浏览 • 1回复 待解决
请尝试在 @Reusable 组件中,重新赋值上层组件传递的数据
可参考如下demo:
本demo在provide、consume、objectLink层级修改数据UI层都可以正常刷新