У меня есть следующий код:
struct FirstView: View {
@State var idArray: Array<String> = ["a", "b", "c"]
var body: some View {
SecondView(idArray: $idArray)
}
}
struct SecondView: View {
@Binding var idArray:Array<String>
var body: some View {
List(){
Section{
ForEach(0..<self. idArray.count, id: \.self){id in
Text(self.idArray[id])
}.onDelete(perform: deleteItem)
}
}
}
func deleteItem(at offsets: IndexSet) {
self.idArray.remove(atOffsets: offsets)
}
}
Проблема: при выполнении удаления удаляется не нужный элемент, а последний.
Я думаю, что проблема @Binding
здесь, как и раньше, у меня не было Списка как собственного компонента и всего в одной структуре, и это работало. Собственный компонент поможет уменьшить избыточность кода в будущем.