OpenHarmony开发者论坛

标题: OH官方文档AppStorage的相关问题 [打印本页]

作者: weggle    时间: 2023-12-25 13:37
标题: OH官方文档AppStorage的相关问题
[md]问题:([文档链接](https://docs.openharmony.cn/page ... 6%E9%80%9A%E7%9F%A5))文档中提到不建议借助@StorageLink的双向同步机制实现事件通知,每次更新storageLink变量时,就算storageLink变量没有绑定到某个UI组件,也会触发自定义组件的刷新。与我的理解相悖,我认为不会触发UI组件的更新。

依据:我看了一下当前的自定义UI组件继承了ViewPU类(源码位于**arkui/ace\_engine/frameworks/bridge/declarative\_frontend/state\_mgmt/**src**/lib/partial\_update/pu\_view.ts**) ,当更新的storageLink变量没有绑定到某个UI组件时,自定义UI组件会在storageLink变量更新时会执行viewPropertyHasChanged,由于dependentElemIds.size==0,应该不会执行this.markNeedUpdate()函数,不会触发UI组件的更新。想请问一下是否有开发者可以解释一下?
[/md]
作者: zhangyixin13    时间: 2023-12-26 17:23
示例代码表达的意思是对的,改了@StorageLink('tapIndex')的值,触发了@Watch的事件,在这个事件里改了状态变量 @State tapColor: Color,这个触发了刷新。tapIndex没有绑定UI组件,确实不会直接触发UI更新,但是这种事件通知的机制”间接“触发了UI刷新。示例想要表达的意思就是不要用示例代码里的这种写法触发刷新,但是文字描述有误,所以给您带来了误解。感谢您的反馈,文档修改中,给您带来不便深表歉意。
作者: weggle    时间: 2023-12-26 19:19
回复 zhangyixin13: 好的,多谢您百忙之中的回复




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5