【发布时间】:2020-04-26 12:19:11
【问题描述】:
我正试图从这里众所周知的新手深渊中爬出来。
我开始掌握 @EnvironmentObject 的使用,直到我注意到文档中的 .environmentObject() 视图运算符。
这是我的代码:
import SwiftUI
struct SecondarySwiftUI: View {
@EnvironmentObject var settings: Settings
var body: some View {
ZStack {
Color.red
Text("Chosen One: \(settings.pickerSelection.name)")
}.environmentObject(settings) //...doesn't appear to be of use.
}
func doSomething() {}
}
我试图用视图上的 .environmentObject() 运算符替换 @EnvironmentObject 的使用。
我因缺少“设置”定义而出现编译错误。
但是,如果没有 .environmentObject 运算符,代码可以正常运行。
所以我的问题是,为什么有 .environmentObject 运算符?
.environmentObject() 是实例化一个 environmentObject 而不是 @environmentObject 访问实例化的对象?
【问题讨论】:
-
.environmentObject(settings)用于视图链中的自定义视图。这里 ZStack 不支持任何 (@EnvironmentObject var) 作为其变量。 -
那么苹果应该已经从可用的运算符中过滤掉了。
标签: swiftui swiftui-environment