簡體   English   中英

SwiftUI - 綁定到選擇器的變量與選擇器的選定值不匹配

[英]SwiftUI - variable bound to picker does not match selected value of the picker

在這段代碼中,repDuration 是一個 int,每當我在選擇器中選擇一個值時,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 將返回范圍序列的索引,而不是值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM