@@ EnvironmentObject初始化程序'init(_ :)'要求'Binding'符合'StringProtocol'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@@ EnvironmentObject初始化程序'init(_ :)'要求'Binding'符合'StringProtocol'相关的知识,希望对你有一定的参考价值。

我有一个EnvironmentObject想要用作按钮标题的数据源:

struct ContentView: View 

    @State var showDetailsView = false
    @EnvironmentObject var storage: Storage

    var body: some View 

        NavigationView 
            ZStack 
                Button(action: 
                    self.doSomethingAsync()
                ) 
                    Text($storage.buttonTitle) // won't compile here

enter image description here

这是我的存储对象:

class Storage: ObservableObject 
    @Published var buttonTitle: String
    @Published var dataObject: DataObject
    init(dataObject: DataObject = DataObject(name: "Test")) 
        self.dataObject = dataObject
        buttonTitle = "Try"
    

答案
Text(storage.buttonTitle)

以上是关于@@ EnvironmentObject初始化程序'init(_ :)'要求'Binding'符合'StringProtocol'的主要内容,如果未能解决你的问题,请参考以下文章