[英]is there an alternative for didSet in SwiftUI?
我想在獲得 User() 后立即更改名稱。 DidSet 在這里不起作用。 SwiftUI 中的 didSet 有替代方案嗎?
struct Person: Identifiable {
let id = UUID()
var name: String
var number: Int
}
class User: ObservableObject {
@Published var array = [Person(name: "Nick", number: 3),
Person(name: "John", number: 2)
]
}
struct ContentView: View {
@ObservedObject var user = User() {
didSet {
user.array[0].name = "LoL"
}
}
var body: some View {
VStack {
ForEach (user.array) { row in
Text(row.name)
}
}
}
}
如果我正確理解了您的期望(擁有您的代碼),則有幾種選擇可以實現目標:
選項1:在設置創建的用戶init
(如前創建的屬性init
)
init() {
self.user.array[0].name = "LoL"
}
選項 2:在視圖外觀上進行設置
VStack {
ForEach (user.array) { row in
Text(row.name)
}
}
.onAppear {
self.user.array[0].name = "LoL"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.