Skip to main content

List の2パターン

swift
List(appData.books, id: \.self, selection: $selectedBook) { book in
Text(book.title)
}
swift
List(selection: $selectedBook) {
ForEach(0..<appData.books.count, id: \.self) { idx in
Text(appData.books[idx].title)
.tag(book)
}
}

この方法だと、データ削除したときに books[idx] で out of range エラーになってしまう。

このようにすれば良い ↓ ForEach で ID と 値の両方を取得

swift
ForEach(Array(books.enumerated()), id: \.element) { i, book in
// View
}