[SwiftUI] Picker 내의 ForEach에서 id:\.self 했을 때의 버그
selection
가 index 의 값이 되어 버립니다.struct MyView: View {
@State var selection = 10
let items = [10,20,30]
var body: some View {
VStack {
Text("selection: \(selection)")
Picker(selection: $selection, label: Text("")) {
ForEach(0..<items.count, id: \.self) { index in
Text("\(items[index])")
.tag(items[index])
}
}
}
}
}
아래와 같이
Identifiable
뭔가를 ForEach
하면 고쳤습니다.struct MyView: View {
@State var selection = 10
struct Item: Identifiable {
var id = UUID()
var num:Int
init(_ num: Int) { self.num = num }
}
let items = [Item(10), Item(20), Item(30)]
var body: some View {
VStack {
Text("selection: \(selection)")
Picker(selection: $selection, label: Text("")) {
ForEach(items) { item in
Text("\(item.num)")
.tag(item.num)
}
}
}
}
}
버전
Swift 5.4
Reference
이 문제에 관하여([SwiftUI] Picker 내의 ForEach에서 id:\.self 했을 때의 버그), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Masahiro_T/items/7e5208cd2153dc49cde0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)