如何在列表中插入结构化可识别数组?

问题描述

struct Gg: Identifiable{
    
    let id: Int
    let task: String
}

struct ContentView: View {

@State private var items = [Gg(id: 1,task:"take the trash out"),Gg(id: 2,task:"Go for a run")]


var body: some View {
        
        NavigationView {
           
            ZStack(alignment: .center) {
                vstack {
                    List(self.items,id: \.self) { index in
                        Text("\(index)")
                    }

}}

我收到以下错误

无法声明名为“ $ id”的实体; '$'前缀保留用于隐式合成的声明 初始化程序'init(_:id:rowContent :)'要求'Gg'符合'Hashable'

退出新的并开始感谢帮助

解决方法

您按项目而不是按索引进行迭代,因此很简单

            VStack {
                List(self.items) { item in
                    Text(item.task)
                }