Как принудительно обновить представление SwiftUI?
У меня есть кнопка с.disabled()
условие, которое является вычисляемым свойством моегоObservableObject
модельный класс. Это значит, что я не успеваю.
Что-то вроде этого:
class MyModel : ObservableObject {
var isDisabled: Bool {
if ... {
return true
}
else {
return false
}
}
}
struct SettingsNewsSubscriptionsView : View {
@ObservedObject var model: MyModel
var body: some View {
...
Button("Save") {
Task {
// Saves to backend asynchronously, then updates MyModel which changes isDisabled.
}
}
.disabled(model.isDisabled)
}
}
В какой-то моментfalse
. При нажатии кнопки что-то сохраняется асинхронно, после чегоMyModel
обновляется, что приведет к тому, чтобы стать .
Потому что это не@Published
, кнопка не обновляется один разisDisabled
становитсяtrue
.
Как я могу вызвать обновление SwiftUIView
, в этом случаеButton
явно изнутриTask
?