SwiftUI、列表、.onDelete(perform:) 和 Firestore

Дми*_*син 2 google-cloud-firestore swiftui

我创建了一个能够通过以下方法删除行的列表:.onDelete (perform:)。

List {
   ForEach(itemList.dataLocation) { item in
      NavigationLink(destination: ListDetails(name: item.nameDB)) {
           ListItem(name: item.nameDB)
      }
   }
   .onDelete(perform: delete)
   .onMove(perform: move)
}


func delete(at offsets: IndexSet) {
        itemList.dataLocation.remove(atOffsets: offsets)
        session.deleteData(id: //id row) //this problem
}
Run Code Online (Sandbox Code Playgroud)

如何将已删除字符串的值传递给函数?建议仍然从该行获取数据。提前致谢!

joe*_*kim 5

在删除函数中,offsets 是一个IndexSet被删除的项目。通常它是一组一个元素。

func delete(at offsets: IndexSet) {
  for index in offsets {
    session.deleteData(id: itemList.dataLocation[index].id) // problem solved
  }
  itemList.dataLocation.remove(atOffsets: offsets)
}

Run Code Online (Sandbox Code Playgroud)