@Observed和@ObjectLink
1、通常在ForEach组件使用,用来修改数组元素的数据实现页面重新渲染
2、数组元素需要class构建
3、@Observed用来修饰class
4、@ObjectLink修饰子组件数据
//子元素的类
@Observed
class TextStatus {
text: string = '';
color: Color = Color.Red;
constructor(text: string) {
this.text = text;
}
}
@Component
export default struct LearnEnglish {
//声明数组数据
@State alphabet: Array<TextStatus> = generateAlphabets()
build() {
Flex({ wrap: FlexWrap.Wrap }) {
ForEach(
this.alphabet,
(item: TextStatus, index: number) => {
MyText({ textStatus: item })
}, (item: string) => item)
}
.width('100%')
.height('100%')
.backgroundColor(0xAFEEEE)
}
}
//生成数组
function generateAlphabets() {
let alphabets = [];
for (let i = 65; i <= 90; i++) {
alphabets.push(new TextStatus(String.fromCharCode(i)));
}
return alphabets;
}