[英]I can not change the value with .onAppear(), .onTapGesture() function and with a NavigationLink in SwiftUI
我遇到了一個小問題,我無法使用 SwiftUI 中的 .onAppear()、.onTapGesture() 函數和 NavigationLink 更改值
如果有人可以告訴我如何解決它? 問候,
看一
struct ContentView: View {
@StateObject var vm = ViewModel()
var body: some View {
NavigationView{
List{
ForEach(0..<4){ numero in
NavigationLink(
destination: DetailView().onAppear(){
//This function is not working
vm.takeNumber(number: numero)
},
label: {
Text(String(numero))
})
}
}
}
}
}
class ViewModel: ObservableObject {
@Published var numero:Int = 0
func takeNumber(number: Int) {
numero = number
}
}
視圖二
struct DetailView: View {
@StateObject var vm = ViewModel()
var body: some View {
// My number is not updated
Text(String("My NUMBER : \(vm.numero)"))
}
}
@StateObject
創建模型的新副本。
嘗試將其更改為
@ObservedObject var model: ViewModel
在DetailView
中並將其作為參數傳遞給ContentView
。
好讀: https ://www.hackingwithswift.com/quick-start/swiftui/whats-the-difference-between-observedobject-state-and-environmentobject
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.