为什么点击不更新视图
import { atype, type } from './Index';
@Entry
@Component
export default struct First {
@State message: string = 'Hello World';
@ObjectLink aa: type;
build() {
Row() {
Column() {
ForEach(this.aa, (item: atype) => {
Text(item.b.toString()).fontSize(50).fontWeight(FontWeight.Bold).onClick(() => {
item.b++;
})
})
}.width('100%')
}.height('100%')
}
}
在之前用
@Component
的时候,这种嵌套的属性更新,想要触发视图组件刷新,需要把要更新的属性的对象传递给一个自定义组件,并且这个对象要声明为@ObjectLink
,这种在更多层嵌套的情况下,会很不友好,要一层层的子组件去创建。官方后续出的
@ComponentV2
,可以通过搭配@ObservedV2
声明类,通过@Trace
去声明属性,可以不需要再建子组件了,可以直接在父组件修改嵌套属性的值,也能触发刷新了。