SwiftUI - 绑定到选择器的变量与选择器的选定值不匹配
SwiftUI - variable bound to picker does not match selected value of the picker
在此代码中,repDuration 是一个整数,每当我 select 选择器 repDuration 中的值将是相同的值减 1,尽管标签等于数字。当我将 repDuration 设置为 String 而不是 Int 时,问题就消失了,如果我想将 repDuration 保留为 Int,有人可以解释如何让值匹配吗?
Picker("Duration", selection: self.$item.repDuration) {
ForEach(1..<366) { number in
Text("\(number)").tag(number)
}
}
您要么需要您的迭代器符合 .Identifiable 协议,要么在 ForEach 调用中指定一个 ID,如下所示:
Picker("Duration", selection: self.$item.repDuration) {
ForEach(1..<366, id: \.self) { number in
Text("\(number)").tag(number)
}
}
否则,swift 将返回范围序列的索引,而不是值。
在此代码中,repDuration 是一个整数,每当我 select 选择器 repDuration 中的值将是相同的值减 1,尽管标签等于数字。当我将 repDuration 设置为 String 而不是 Int 时,问题就消失了,如果我想将 repDuration 保留为 Int,有人可以解释如何让值匹配吗?
Picker("Duration", selection: self.$item.repDuration) {
ForEach(1..<366) { number in
Text("\(number)").tag(number)
}
}
您要么需要您的迭代器符合 .Identifiable 协议,要么在 ForEach 调用中指定一个 ID,如下所示:
Picker("Duration", selection: self.$item.repDuration) {
ForEach(1..<366, id: \.self) { number in
Text("\(number)").tag(number)
}
}
否则,swift 将返回范围序列的索引,而不是值。