#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
.