我想知道如何将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()
}
}
答案 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}}中相同的实例。