HarmonyOS Array 成员变量属性更改,状态不同步、未能刷新UI
试了各种定义,用链表下标访问时, 组件内的 text 的 title都刷新不了、更不用谈ListItem(里边用的@ObjectLink);
// 换成单个对象捆绑、才会响应, 但是场景是需要用链表。
@Observed
export class ConversationBean {
string title;
}
@Observed
class ConversationArray extends Array<ConversationBean> {}
@Observed
export class ObservedArray<T> extends Array<T> {
constructor(args?: T[]) {
if (args instanceof Array) {
super(...args);
} else {
super();
}
}
}
@Component
struct ConversationList {
@State conversationList: ObservedArray<ConversationBean> = []//ConversationBean[] = [];//Array<ConversationBean> = []
@State conversationBean: ConversationBean = new ConversationBean();
build() {
Column() {
List() {
ForEach(this.conversationList, (item: ConversationBean) => {
ListItem() {
ConversationListItem({ conversation: item})//this.conversationBean
}.width('100%')
})
}.divider({ strokeWidth: 1, startMargin: 15, color: Color.Gray }).backgroundColor(Color.Blue)
.onClick(() => {this.test()})
Text(this.conversationList[0].title)//this.conversationBean.title
}
}
aboutToAppear(): void {
this.conversationList = ConversationViewModel.getConversationList();
this.conversationBean = this.conversationList[0];
}
test() { // this.conversationList = ConversationViewModel.getConversationList();
if (this.conversationList.length > 0) {
this.conversationList[0].title += '00';
}
this.conversationBean.title += 'bean++'
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 亮度不同步体验不好
71浏览 • 1回复 待解决
HarmonyOS 懒加载列表更改属性UI不刷新
19浏览 • 1回复 待解决
解决页面间数据不同步问题
1006浏览 • 1回复 待解决
HarmonyOS 变量状态同步问题
296浏览 • 1回复 待解决
backgroud()方法使用@State修饰的状态变量值更新后未能触发不同的@builder方法刷新
2246浏览 • 1回复 待解决
HarmonyOS Web组件grayscale属性设置未能生效
73浏览 • 1回复 待解决
刷新显示状态,希望自定义一个刷新组件,通过刷新状态的不同显示不同字段包括下拉刷新,释放刷新
859浏览 • 1回复 待解决
HarmonyOS 状态变量不刷新问题
516浏览 • 1回复 待解决
HarmonyOS 录制生成mp4文件音画不同步;录制3-5分钟短视频音画正常,超过3-5分钟左右的视频音画会不同步。
12浏览 • 1回复 待解决
#鸿蒙学习大百科#状态变量的变化何时会触发UI刷新?
265浏览 • 1回复 待解决
状态装饰器 ui不刷新的问题
2476浏览 • 1回复 待解决
HarmonyOS 点击list的item,修改当前item的属性状态值List根据属性值变化刷新UI
91浏览 • 1回复 待解决
如何将界面上的状态变量传给服务层,在服务层修改状态变量对象的属性刷新页面
657浏览 • 1回复 待解决
HarmonyOS 多层级的变量改变怎么同步修改到UI中
66浏览 • 1回复 待解决
HarmonyOS 嵌套层级较多,导致状态管理不能刷新UI
558浏览 • 1回复 待解决
HarmonyOS @Watch可以观察到@Consume装饰的状态变量更改吗
65浏览 • 1回复 待解决
自定义组件中,批量更新多个状态变量 vs 批量更新多个非状态变量后更新一个UI无关状态变量强制更新UI
1754浏览 • 1回复 待解决
HarmonyOS 为什么@Link的属性变更不会触发UI刷新?
387浏览 • 1回复 待解决
HarmonyOS Navigtion组件,两个NavDestination之间如何同步状态变量
407浏览 • 1回复 待解决
HarmonyOS 状态同步问题
18浏览 • 1回复 待解决
HarmonyOS ObjectLink修饰符对象的属性改变不能引起UI刷新
499浏览 • 1回复 待解决
HarmonyOS @State修饰的Array<Object>修改对象的属性,单个item的页面数据没刷新。
38浏览 • 1回复 待解决
HarmonyOS UI不刷新
20浏览 • 1回复 待解决
HarmonyOS @Builder函数接收的状态变量未引起内部ui变化
68浏览 • 1回复 待解决
HarmonyOS 如何让自定义类中的属性变化引起UI刷新?
449浏览 • 1回复 待解决
可以参考简单demo去实现
参考文档
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5#概述