繁体   English   中英

在加载时将 @State 变量从 UserDefaults 更改为值而不更新 Picker

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM