Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the index of a deleted row from a list in SwiftUI?

Tags:

swift

swiftui

I want to delete an element from an array that I am displaying as a list using a ForEach, but I also need to send a HTTP request to a REST API and I need to put the index of the element in the body of the request. Here is my code:

ForEach(self.symptoms, id: \.self) { symptom in
           VStack(alignment: .leading) {
                    Text(symptom)
            }
}.onDelete(perform: delete)

Here is the delete function:

func delete(at offsets: IndexSet) {     
      self.symptoms.remove(atOffsets: offsets)
      // here I want to make the HTTP request
}
like image 457
Susca Bogdan Avatar asked Jan 01 '23 03:01

Susca Bogdan


1 Answers

If you remove by-one, then the following give you index of deleted row

func delete(at offsets: IndexSet) {     
      self.symptoms.remove(atOffsets: offsets)

      // here I want to make the HTTP request
      let index = offsets[offsets.startIndex]

      // ... use index in HTTP request
}
like image 123
Asperi Avatar answered Jan 02 '23 17:01

Asperi