中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
主要代码如下
List() { ForEach(this.FarmList, (Farm:FarmBean) => { ListItem() {this.FarmListItem(Farm.name, Farm.fieldId)} .onClick(()=>{ //ToDo }) }) } .listDirection(Axis.Vertical) .divider({ strokeWidth: 1, startMargin: 60, endMargin: 10, color: '#a1949494' }) .scrollBar(BarState.Auto)
在这个循环渲染中,我希望能够在子组件被点击时获取到这个子组件在列表中的索引,从而对子组件实现状态管理。
希望能够解答。
微信扫码分享
class FarmBean { name: string = "" fieldId: string = "" constructor(name, fieldId) { this.name = name this.fieldId = fieldId } } @Entry @Component struct test { @State FarmList: Array<FarmBean> = [ new FarmBean('图片1.jpg', "id1"), new FarmBean('文本2.txt', "id2") ] build() { Column() { List() { ForEach(this.FarmList, (Farm: FarmBean, index: number) => { ListItem() { this.FarmListItem(Farm.name, Farm.fieldId) } .onClick(() => { console.info('====内容:', JSON.stringify(Farm), ",子组件在列表中的索引:" + index) }) }) } .listDirection(Axis.Vertical) .divider({ strokeWidth: 1, startMargin: 60, endMargin: 10, color: '#a1949494' }) .scrollBar(BarState.Auto) } } @Builder FarmListItem(name, fieldId) { Text('文件名' + name + ',文件id:' + fieldId).fontSize(20) } }