@@ 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
这是我的存储对象:
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'的主要内容,如果未能解决你的问题,请参考以下文章
为什么@EnvironmentObject强制重新初始化视图?
SwiftUI iOS 14 视图不使用 @EnvironmentObject 更新 @Published 数组
macOS 应用程序的 SwiftUI:关闭窗口并打开另一个窗口时的用户 @EnvironmentObject
SwiftUI - 如何使用 ObservedObject 或 EnvironmentObject 存储 GeometryReader 数据?