Как мы можем преобразовать значение типа ObservedObject в привязку в SwiftUI?

#swiftui

#swiftui

Вопрос:

Я хотел бы знать, как я могу преобразовать значение типа ObservedObject в привязку, есть идеи?

мне DataView нужно dataModel работать, я загружаю его как обычно, но он не используется! Мне нужно преобразовать

вот мой код:

 import SwiftUI


class DataModel: ObservableObject

{
    @Published var data : String = "Hello, world!"
}


struct ContentView: View
{

@StateObject var dataModel = DataModel()

    
    var body: some View
    {
        
        DataView(dataModel: $dataModel)

    }
}



struct DataView: View
{
    
    @Binding var dataModel : DataModel

    var body: some View
    {
        Text(dataModel.data)
            .padding()
    }
}
  

Ответ №1:

Вы можете передать его как @ObservedObject :

 struct ContentView: View {
    @StateObject var dataModel = DataModel()

    var body: some View {
        DataView(dataModel: dataModel)
    }
}

struct DataView: View {
    @ObservedObject var dataModel: DataModel

    var body: some View {
        Text(dataModel.data)
            .padding()
    }
}
  

DataModel это класс, поэтому он является ссылочным типом. Что означает, что в DataView вы будете использовать тот же экземпляр, что и в ContentView .