Наблюдаемый объект SwiftUI выполняет действие при изменении своего свойства

#ios #swift #function #swiftui #observedobject

#iOS #swift #функция #swiftui #наблюдаемый объект

Вопрос:

Я наблюдал объект, который создается в представлении, и я хочу иметь функцию, которая будет выполняться при изменении свойства объекта bool. Я хочу что-то похожее на .onTapGesture. Есть ли способ это сделать? есть функция, в которой тело функции создается вне этого объекта?

Комментарии:

1. Как эта функция связана с представлением, привязана ли она к какому-либо компоненту?

Ответ №1:

Давайте повторим…

 class Demo: ObservableObject {
   @Published var value = false
}

struct DemoView: View {
   @ObservedObject var demo = Demo()

   var body: some View {
      Text("Demo") 
        .onReceive(demo.$value) { flag in
            // call here your function
        }
   }
}
 

Комментарии:

1. Есть ли способ, которым я мог бы передать массив наблюдаемых объектов?

Ответ №2:

используйте @ObservedObject для изменения значения, используйте @StateObject для чтения опубликованного значения