簡體   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