通过动态改变 RowState 的 state 属性,来实现刷新。代码如下:
// 控件类型
export enum ControlType {
Label = 1, // 文本标签
TextBox = 2, // 单行文本框
}
@Entry
@Component
struct TestAct {
rowRootData: RowRootData = null;
aboutToAppear() {
this.rowRootData = getTestDatas();
}
build() {
List({ space: 10 }) {
ForEach(this.rowRootData.dataList, (rowData: RowData, index?: number) => {
ListItem() {
this.getRowWidget(rowData, index)
}
.width('100%')
})
}
}
@Builder getRowWidget(rowData: RowData, index: number) {
RowView({
rowRootData: this.rowRootData,
myIndex: index,
rowData: rowData,
})
}
}
/**
* 注意事项:
* * 1. 参数 rowRootData, myIndex 为必传
* * 2. 参数 rowData 可传可不传
*/
@Component
struct RowView {
// 为了性能,尽量不让 rowRootData 使用 @Provide装饰器 和 @Consume装饰器
rowRootData: RowRootData;
myIndex: number