使用@ObservedV2装饰器的class,给子组件@Prop装饰的数组传值时,数组变动了,但数组元素的值未拷贝过去
API12,使用@ObservedV2装饰的class, @Trace装饰的字段数组, 传给子组件@Prop装饰的数组变量,在接口拿到数据时,更新class对应的字段数组, 子组件@Prop装饰的数组里元素的值变成undefined。
场景描述:
@ObservedV2
export class UiState {
@Trace multiState: MultiState = MultiState.Content;
@Trace tabStringArray: string[] = [];
@Trace tabBarSelectedIndex: number = 0;
}
子组件定义:
@Component
export default struct HXTitleTabBar {
@Prop titles: string[] = [];
// title样式
...
}
页面:
export struct ChannelListContainerPage {
....
tabsController: TabsController = new TabsController();
private vm: ChannelListContainerViewModel = new ChannelListContainerViewModel();
aboutToAppear(): void {
this.vm.fetchChannelTabList();
}
build() {
Column() {
HXTitleTabBar({
titles: this.vm.uiState.tabStringArray,
onSelectedAtIndex: (index: number) => {
this.vm.setTabBarSelectedIndex(index);
this.tabsController.changeIndex(index);
}
})
....
}
在接口拿到数据后,更新vm的tabStringArray, 更新UI时, 给子组件HXTitleTabBar传值时,@Prop修饰的数组变化了, 但元素值变成了undefined。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
postgresql json 字段值为数组,怎么查询数组包含指定元素的数据?
15438浏览 • 1回复 待解决
postgresql json 字段值为数组形式,怎么查询数组包含指定元素的数据?
5467浏览 • 1回复 待解决
readonly修饰的数组无法获取数组元素
2049浏览 • 1回复 待解决
HarmonyOS debug的时候,发现数组中有值的元素显示的是undefined
102浏览 • 1回复 待解决
如何删除数组中的空值?
373浏览 • 1回复 待解决
HarmonyOS使用@ObservedV2装饰viewmodel类,在父子组件传递的时候不方便
288浏览 • 1回复 待解决
HarmonyOS ObservedV2装饰器对接口返回的model进行状态监听无效
16浏览 • 1回复 待解决
JS 卡片 ,JAVA 怎么给 这边传数组?
6194浏览 • 1回复 待解决
#鸿蒙学习大百科#@ObservedV2和@Trace装饰器需要如何配合使用?
180浏览 • 1回复 待解决
HarmonyOS @State修饰的数组内部的值变化了,怎么刷新UI?
315浏览 • 1回复 待解决
HarmonyOS 如何监听数组元素属性的变化?
472浏览 • 1回复 待解决
HarmonyOS 如何对数组进行深拷贝?
257浏览 • 1回复 待解决
@State装饰嵌套结构的变量时,为什么嵌套结构中数组元素增加或减少时界面不会刷新
2683浏览 • 1回复 待解决
HarmonyOS @Observed装饰的类,构造了对象数组,那这个数组中对象的属性变化之后,能引起视图的更新吗
1004浏览 • 1回复 待解决
class二次刷新渲染数组
744浏览 • 1回复 待解决
关于JS的垃圾回收机制,在数组中删除所有元素和直接把数组指向成空数组,哪个方式更好
1781浏览 • 1回复 待解决
@State修饰的对象通过传参给子组件,子组件不刷新,获取的值为空
1997浏览 • 1回复 待解决
HarmonyOS 使用@ObservedV2的类,无法从父组件通过构造函数传递给子组件
53浏览 • 1回复 待解决
#鸿蒙学习大百科#@ObservedV2和@Trace装饰器从哪个API版本开始支持?
232浏览 • 1回复 待解决
数组嵌套数组场景的懒加载实现
636浏览 • 1回复 待解决
HarmonyOS 父组件不能用@ObservedV2修饰的类用@state传给子组件
33浏览 • 1回复 待解决
HarmonyOS HashMap中放入数组,数组数据发生改变时如增加或者删除元素,如何触发UI刷新
24浏览 • 1回复 待解决
如果在一个组件中有一个模型数组,把模型数组传递给子组件,如何做到在父组件中修改模型数组中一个元素
1918浏览 • 1回复 待解决
HarmonyOS @State标注的二维数组,当元素变更后,选中状态ui未更新
346浏览 • 1回复 待解决
子组件使用@Link修饰成员变量时,如何通过父组件传值
1855浏览 • 1回复 待解决
@ObservedV2不能跟@prop装饰器一起使用,把@prop去掉可以接收到。去掉@prop,子组件无法更新UI的情况,需要把整个类传过去,不然监听不到变化。 如下demo更改: