Observe和ObjectLink 使用

父组件 @State Class的数组 Class装饰了Observed子组件 @ObjectLink 一个Item,子组件内,修改item.status值 同时回调给父组件打印一下

结果是:父组件打印 确实item.status的值变化了。但是,子组件中ui并没有随着status变化。

HarmonyOS
2024-10-09 09:45:09
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

将@ObjectLink修改成@Prop即可触发UI刷新可以参考下方链接,查看@ObjectLink与@Prop使用区别:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5

被@ObjectLink修饰的class,底层重写了构造方法,如果要使用@ObjectLink修饰,只能通过new 对象的方式使用。所以json返序列化之后,需要重新构造new一个对象,将字段值复制进去,重新塞回数组,才能触发@ObjectLink,代码:

getCommentList(resolve?: (value: string | PromiseLike<string>) => void) {  
  let result: ArticleCommentResult = JSON.parse(this.json);  
  let list: CommentBean[] = result.comment_list;  
  list.forEach(bean => {  
    let commentBean: CommentBean = new CommentBean();  
    commentBean.nickname = bean.nickname  
    commentBean.cuser_id = bean.cuser_id  
    commentBean.star_number = bean.star_number  
    commentBean.is_zan = bean.is_zan  
    commentBean.content = bean.content  
    commentBean.elite = bean.elite  
    commentBean.article_title = bean.article_title  
    this.commentList.push(commentBean)  
  });  
}
分享
微博
QQ
微信
回复
2024-10-09 17:53:37
相关问题
HarmonyOS @ObjectLink@State的相关疑问
251浏览 • 1回复 待解决
HarmonyOS使用@ObjectLink 数据不刷新
732浏览 • 2回复 待解决
在自定义组件中使用@ObjectLink报错
1293浏览 • 1回复 待解决
HarmonyOS V2 @ObjectLink?
180浏览 • 0回复 待解决