HarmonyOS 鸿蒙Next:父组件arr更新后,子组件监听并输出日志但数据未渲染更新

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:父组件arr更新后,子组件监听并输出日志但数据未渲染更新

【关键字】

父组件 / 子组件 / 更新 / 渲染 / 监听

【问题描述】

子组件为TextVerticalList,父组件为PriorityRelease,父组件中的arr更新后,子组件监听到并且输出了日志,但是子组件中的数据没渲染更新。

【解决方案】

可以使用@Observed装饰器和@ObjectLink装饰器,来监听刷新嵌套类对象属性变化。

参考链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5

针对触发子组件更新的通过ForEach可以解决,但是使用LazyForEach就不行的问题,应该是LazyForEach有一定的使用限制导致的,例如LazyForEach在每次迭代中,必须创建且只允许创建一个子组件。

具体使用限制参考链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-rendering-control-lazyforeach-V5#%E4%BD%BF%E7%94%A8%E9%99%90%E5%88%B6

1 回复

在HarmonyOS开发中,如果父组件的arr数组更新后,子组件未能及时渲染更新并监听到数据变更但未输出日志,可能的原因包括:

  1. 确保父组件的arr数组更新时使用了能够触发界面刷新的方法,如setState或相应的状态更新函数。
  2. 检查子组件的@Entry@Component注解中是否正确绑定了父组件传递的arr属性,并确保使用了@Prop或类似的注解来接收。
  3. 在子组件中,使用@Watch或其他监听机制来观察arr的变化,并在变化时执行日志输出逻辑。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部