SwiftUI中如何使用EnvironmentObject初始化State属性?

How to use EnvironmentObject to initialize State Property in SwiftUI?

我在使用来自 EnvironmentObject 的数据初始化 State 时遇到了一个小问题。

@EnvironmentObject var settings: Settings
    
@State var localAllowReminders: Bool
    
init() {
    self._localAllowReminders = State(initialValue: settings.allowReminders)
}

Obviously, I get the following Error Message: 'self' used before all stored properties are initialized.

问题:如何使用 EnvironmentObject 中的数据初始化状态?

感谢您的帮助。

EnvironmentObject 被注入 视图构造函数调用之后,因此您必须将状态初始化为某个默认值并在顶部主体视图中将其重置为所需值 onAppear修饰符,如

@EnvironmentObject var settings: Settings
@State var localAllowReminders: Bool = false   // << just any default
    
var body: some View {
    VStack {       // << any top view
        // ...
    }
    .onAppear {
       self.localAllowReminders = settings.allowReminders   // << here !!
    }
}