[英]Changing @State variable to value from UserDefaults on load not updating Picker
我正在嘗試使用存儲在 UserDefaults 中的值加載我的應用程序時更新 @State 變量,但我的 Picker 沒有更新。 這是我嘗試過的:
struct ContentView: View {
@State var selectedCanteen = 1
init() {
let previousSelectedCanteen = UserDefaults.standard.string(forKey: "selectedCanteen")
if let exist = previousSelectedCanteen {
self.selectedCanteen = Int(exist) ?? 1
}
}
var body: some View {
Picker(selection: $selectedCanteen, label: Text("Testing...")) {
Text("Stuff").tag(1)
Text("Stuff 2").tag(2)
}
}
}
我來自 react-native,所以我可能錯過了 Swift/SwiftUI 中的一些基本概念。 希望有人能引導我走向正確的方向。
嘗試使用以下方法
@State var selectedCanteen: Int
init() {
let previousSelectedCanteen = UserDefaults.standard.string(forKey: "selectedCanteen")
var initialValue = 1
if let exist = previousSelectedCanteen {
initialValue = Int(exist) ?? 1
}
_selectedCanteen = State<Int>(initialValue: initialValue)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.