使用@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 字段值为数组,怎么查询数组包含指定元素的数据?
15052浏览 • 1回复 待解决
postgresql json 字段值为数组形式,怎么查询数组包含指定元素的数据?
5194浏览 • 1回复 待解决
HarmonyOS使用@ObservedV2装饰viewmodel类,在父子组件传递的时候不方便
115浏览 • 1回复 待解决
readonly修饰的数组无法获取数组元素
1824浏览 • 1回复 待解决
如何删除数组中的空值?
247浏览 • 1回复 待解决
#鸿蒙学习大百科#@ObservedV2和@Trace装饰器需要如何配合使用?
69浏览 • 1回复 待解决
JS 卡片 ,JAVA 怎么给 这边传数组?
6037浏览 • 1回复 待解决
HarmonyOS 如何监听数组元素属性的变化?
181浏览 • 1回复 待解决
#鸿蒙学习大百科#@ObservedV2和@Trace装饰器从哪个API版本开始支持?
84浏览 • 1回复 待解决
@State装饰嵌套结构的变量时,为什么嵌套结构中数组元素增加或减少时界面不会刷新
2444浏览 • 1回复 待解决
HarmonyOS @Observed装饰的类,构造了对象数组,那这个数组中对象的属性变化之后,能引起视图的更新吗
533浏览 • 1回复 待解决
HarmonyOS 如何对数组进行深拷贝?
43浏览 • 1回复 待解决
@State修饰的对象通过传参给子组件,子组件不刷新,获取的值为空
1813浏览 • 1回复 待解决
关于JS的垃圾回收机制,在数组中删除所有元素和直接把数组指向成空数组,哪个方式更好
1653浏览 • 1回复 待解决
class二次刷新渲染数组
621浏览 • 1回复 待解决
数组嵌套数组场景的懒加载实现
533浏览 • 1回复 待解决
子组件使用@Link修饰成员变量时,如何通过父组件传值
1720浏览 • 1回复 待解决
HarmonyOS @ObjectLink 装饰器装饰的变量成员子组件中无法感知更新
316浏览 • 1回复 待解决
如果在一个组件中有一个模型数组,把模型数组传递给子组件,如何做到在父组件中修改模型数组中一个元素
1765浏览 • 1回复 待解决
HarmonyOS @State标注的二维数组,当元素变更后,选中状态ui未更新
131浏览 • 1回复 待解决
对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,第二层的属性变化如何观察
215浏览 • 1回复 待解决
API11,如何更改数组中某个字段的全部值~?
388浏览 • 1回复 待解决
HarmonyOS 嵌套数组元素的UI刷新方案
230浏览 • 1回复 待解决
鸿蒙这边如何定义一个数组,数组中元素类型不确定?数组中可能有string、number、boolean等
1906浏览 • 1回复 待解决
HarmonyOS 组件内的一个prop定义后给默认值,外部调用不传这个属性。
306浏览 • 1回复 待解决
@ObservedV2不能跟@prop装饰器一起使用,把@prop去掉可以接收到。去掉@prop,子组件无法更新UI的情况,需要把整个类传过去,不然监听不到变化。 如下demo更改: