自学内容网 自学内容网

鸿蒙开发 四十五 鸿蒙状态管理(嵌套对象界面更新)

当运行时的状态变量变化,UI重新渲染,在ArkUI中称为状态管理机制,前提是变量必须被装饰器修饰。不是状态变量的所有更改都会引起刷新,只有可以被框架观测到的更改才会引起UI刷新。其中boolen、string、number类型,可观察到数据的变化,class或object,可观察本身赋值的变化,即Object.keys(observedObject)返回的属性。@State修饰的boolean、string、number变化UI会刷新如果对象嵌套一级对象,UI刷新需要把嵌套的的整个对象替换,如下图:

定义了一个汽车对象Car,Car对象定义了属性name,定义了一个人对象Person,Person对象定义了两属性name和Car,实例化后,通过Object.keys(obj)查看属性键,只有name和car,如下图:

对于属性name状态值得更改UI随着更改,而car的更改则需要整个对象的替换,

如果只修改car对象的值,this.person.car.name = '小火车',这样UI渲染不了

总结:鸿蒙@State修饰的变量变化UI会跟着渲染,@State修饰的对象属性变化UI也能更新,这时的对象需Object.keys(obj)认识的属性更新才能能更新界面,这时候单单修改嵌套的对象的属性是不会更新界面的,嵌套的对象整个修改UI才会更新


原文地址:https://blog.csdn.net/renfujiang/article/details/142968697

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!