SwiftUI List에서 ID가 반복되는 현상
(대충 ForEach에서 ID가…) occurs multiple times within the collection, this will give undefined results!
라는 에러를 맞닥뜨렸다.
왜?
@State private var candidates: [Candidate] = [
Candidates(name: "2unbini", id: "1234"),
Candidates(name: "seri", id: "5678")
]
...
List {
ForEach(candidates, id: \.self.id) { candidate in
Text(candidate.name)
}
}
이런 상태에서 candidates
배열이 업데이트가 잘못돼 동일한 id를 가진 요소가 두 개 이상 생겨버리면 위와 같은 에러가 뜬다.
어떻게 해결?
나는 그냥 id가 이상한 줄 알고 candidates.count로 해서 각 index를 id로 줬었는데, 그게 아니라 그냥 ForEach문에 들어가는 데이터 자체에 문제가 있었던 것이다.
그래서 데이터가 업데이트될 때 중복되지 않도록 해당 배열을 removeAll()해준 뒤 업데이트 해 주었다.
댓글남기기