HarmonyOS 嵌套组件状态监听?

嵌套组件,顶层数据元素更新后UI无法刷新。

有一个页面在顶层组件生命了一个可观察状态的对象数组对象@Provide workApps: GroupMenu[] = [],然后使用了List组件显示workApps,ListItem是封装的一个组件Applications。

Applications内部使用GridRow来展示Apps,更改workApps的某一个对象的属性值,想让GridRow对应的Item刷新,但是现在不能刷新。发现是因为workApps没有发生改变引起的。解决办法是把workApps清除后,重新添加修改后的数据。但是认为不是正确的解决办法,应该使用@Observed与@ObjectLink来解决。请问正确的写法应该是什么样的?

阅读 508
1 个回答

应该在GroupMenu上面使用@Observed,然后在workApps使用ObjectLink,但是目前使用了@Provide需要进行初始化,会有矛盾冲突,这边推荐两个方案:

第一个方案把@Provide取消掉,使用@Observed和@ObjectLink。

第二个方案使用@ObservedV2和@Trace,依旧放在GroupMenu和workApps上面。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进