Я работаю с новым макросом @ObServable в Swiftui (iOS 17+). В некоторых представлениях моя модель просмотра работает отлично, не завершая ее в @state. Но в других представлениях я должен обернуть его в @state или обновления не распространяются правильно (например, оповещения не отображаются, пользовательский интерфейс не освежает и т. Д.).struct AddProductView: View {
private var vm = AddProductVM()
var body: some View {
@Bindable var dVM = vm
VStack {
if dVM.shouldShowAlert {
Text("Alert triggered")
}
}
.onChange(of: dVM.someTrigger) {
dVM.shouldShowAlert = true
}
}
}
< /code>
Это работает нормально. При изменении во время обновления следует обновляется, и пользовательский интерфейс отражает его. < /P>
Пример, который требует @state: < /p>
struct ProductDetailsView: View {
@State private var vm = ProductDetailsVM() //
Без @state пользовательский интерфейс либо не обновляется, либо сбрасывает, особенно после .onapear или .task. /> < /ul>
Подробнее здесь: https://stackoverflow.com/questions/796 ... in-swiftui