обновление переменной @State в swiftUI не приводит к перезагрузке при использовании делегата, который вызывается извне
У меня есть этот код:
import SwiftUI
@main
struct MyWatchApp: App {
@State var myEnum: MyEnum = .first
var body: some Scene {
WindowGroup {
getCorrectView()
}
}
func getCorrectView() -> some View {
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
self.update(.second) // this works
}
switch myEnum {
case .first: return AnyView(Text("First"))
case .second: return AnyView(Text("Second"))
}
}
}
extension MyWatchApp: MyDelegate {
func update(_ newState: MyEnum) {
// when this func calls from outside, this print called but view not reloads
// when this func calls from my getCorrectView, works as expected
print("state updated")
myEnum = newState
}
}
Моя проблема заключается в том, что вызов функции «обновления» из другого класса, метода calles, даже вызова print(), но просмотр не перезагружается, например, когда эта функция вызывается из этого файла.