相关问题
状态变量和常规变量有什么区别?
361浏览 • 2回复 待解决
自定义组件中,批量更新多个状态变量 vs 批量更新多个非状态变量后更新一个UI无关状态变量强制更新UI
1633浏览 • 1回复 待解决
HarmonyOS 每个页面相同的状态变量如何封装?
242浏览 • 1回复 待解决
如何将界面上的状态变量传给服务层,在服务层修改状态变量对象的属性刷新页面
549浏览 • 1回复 待解决
ArkTS中如何监听状态变量的变化?
804浏览 • 1回复 待解决
HarmonyOS 状态变量不刷新问题
309浏览 • 1回复 待解决
@Provide的状态变量,是否可以观察多层嵌套的属性?
758浏览 • 1回复 待解决
基于滑动监听和状态变量实现滑动时取消按压态
647浏览 • 1回复 待解决
#鸿蒙学习大百科#在ArkUI中,什么是状态变量?
114浏览 • 1回复 待解决
HarmonyOS IDE能否监听到State状态变量是在什么地方修改的,类似代码插桩能力
211浏览 • 1回复 待解决
backgroud()方法使用@State修饰的状态变量值更新后未能触发不同的@builder方法刷新
2142浏览 • 1回复 待解决
HarmonyOS Navigtion组件,两个NavDestination之间如何同步状态变量
272浏览 • 1回复 待解决
一个自定义组件内某一时机批量刷新多个@State修饰的状态变量,是否会影响性能
266浏览 • 1回复 待解决
#鸿蒙学习大百科#状态变量的变化何时会触发UI刷新?
148浏览 • 1回复 待解决
#鸿蒙学习大百科#如何避免不必要的状态变量的使用?
135浏览 • 1回复 待解决
#鸿蒙学习大百科#状态变量的数量对于app的性能有什么影响?
194浏览 • 1回复 待解决
在自定义组件Page的build方法里改变状态变量会造成什么影响?
341浏览 • 1回复 待解决
如何在自定义组件的构建流程里跟踪组件数据或者状态,如在build里增加日志跟踪状态变量等
1834浏览 • 1回复 待解决
List的item点击变色有什么好方法吗,现在是用是否是点击状态和选择的index两个状态变量共同控制的背景色
1710浏览 • 1回复 待解决
我在ets文件内,自定义组件外写了个setInterval定时器,在这个定时器内如何修改自定义组件的状态变量
1946浏览 • 1回复 待解决
@State 修饰的变量值改变,界面不刷新
1280浏览 • 1回复 待解决
UI界面中用@state绑定的变量,在逻辑代码中class中做了修改,怎么在UI界面察觉到这个@state变量发生了变化
1656浏览 • 1回复 待解决
HarmonyOS 变量状态同步问题
180浏览 • 1回复 待解决
@State观察自定义ViewModel中数组变量变化观察的问题
174浏览 • 1回复 待解决
HarmonyOS @State修饰的class变量没有嵌套的值无法监听
150浏览 • 1回复 待解决
开发过程中,对于状态变量的使用开发者总是很难搞清楚,不同状态变量的使用场景;不管什么数据类型都用@state修饰,遇到class就用observe修饰,到运行时就会发现根本无法达到预期。所以本文引入几个概念,尽量将状态变量的使用场景描述清楚,尤其是@state和observe的使用场景。
@state和单层数据
首先我们先引入单层数据的定义:
单层数据:基础数据类型(string、boolean、number)、由
基础数据类型的成员变量组合的类或者者集合(如:Array<string>)和数组长度及数组某成员的整体变化;为了各位更好的理解,给大家举个常用的例子:
对于单层数据的变化,@state都可以完美修饰,从而体现在视图上;致此大家可以看到并非所有的类都需要@observe来修饰,那什么时候需要使用@observe和@objectLink,各位看官请继续往下走;
@observe、@objectLink和双层数据
在单层数据的基础上,我们再引入双层数据结构的定义,大家应该就很容易理解了:
双层数据:class中包含额外class类型的成员变量(依赖的class仍是由基础类型组成),Array中的class的成员变量(你懂得特指class中的基础成员变量)
如果你想这些双层数据的变化也能够完美的体现在视图上,这时候就得引入@observe和@objectLink了现将这些class用@observe修饰,然后再在子组件里使用@0bjectLink接收。下文对于以上这两种情形已具体demo给出,各位看官请观看:
总结:
当前arkui对于复杂数据的支持,需要借助observe和objectLink来支持,原则上每多一层数据结构,就需要新增observe来观测。在附件中附上一个二维数组的改造的数据结构,可以完美监听二维数组的数据变化。