[英]Why can't I set the value to a @State var without getting this error?
[英]Why I can't I assign a value to an @State var in SwiftUI init?
為什么這個分配給 init 中的 @State var 不起作用?
class getOldValuesFromDb : ObservableObject {
@State var oldValue: Int = 0
init(){
let val = 999
self.oldValue = val
print("OldValue: \(self.oldValue) and Val: \(val)")
}
}
val
的值顯示正確,但是當我將它分配給oldValue
時,它的值仍然為零。 我的print()
看起來完全像這樣: OldValue: 0 and Val: 999
這怎么可能?
我不確定@State
是否應該在View
之外使用。
從蘋果文檔:
SwiftUI 管理您聲明為 state 的任何屬性的存儲。 當 state 值更改時,視圖使其外觀無效並重新計算主體。 使用 state 作為給定視圖的唯一真實來源。
和
您應該只從視圖主體內部或從它調用的方法訪問 state 屬性。 因此,將您的 state 屬性聲明為私有,以防止您的視圖的客戶端訪問它。 從任何線程改變 state 屬性是安全的。
您是否嘗試使用@Published代替?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.