如何在SwiftUI中将ObservedObject类型的值转换为Binding?

时间:2020-10-21 21:22:32

标签: swiftui

我想知道如何将ObservedObject类型的值转换为Binding,知道吗?

我的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 个答案:

答案 0 :(得分:1)

您可以将其作为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 class ,因此它是引用类型。这意味着在ContentView中,您将使用与{{1}}中相同的实例。