Swiftui 导致缺少导航链接初始化的状态变量
我在aboutView(ContentView底部)的导航链接中遇到一些奇怪的错误:Swiftui 导致缺少导航链接初始化的状态变量,swiftui,Swiftui,我在aboutView(ContentView底部)的导航链接中遇到一些奇怪的错误: 由于“私有”保护级别,aboutView的初始值设定项不可访问 调用中缺少参数“useHomeCur”的参数 期望表达式 Xcode还建议我在ContentView中插入'useHomeCur' 我不会在任何其他视图中看到这些错误。 aboutView.swift中未出现任何错误。它的行为就像aboutView是ContentView的子视图一样。它希望我在ContentView中定义一个aboutView状态
struct ContentView: View {
@State private var activateAbout = false
var body: some View {
NavigationView {
VStack {
... menu navigation links
}
.font(.title)
.navigationBarTitle("blah blah blah", displayMode: .inline)
.background(
// hide programmatically activated link here !!
NavigationLink(destination: aboutView(), isActive: $activateAbout) { EmptyView()
)
.navigationBarItems(trailing: Button( action: {
// not add - only activate it here, otherwise it will not work
self.activateAbout = true
}) {
Text("About")
}
}
}
.onAppear(perform: loadCurrencies)
}
}
}
以下是aboutView>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
struct aboutView: View {
@EnvironmentObject var userData: UserData
@State private var useHomeCur: Bool
var body: some View {
NavigationView {
Form {
VStack (alignment: .center) {
Text("blah blah blah")
Text("blah blah blah")
}.font(.body)
Toggle(isOn: $useHomeCur) {
Text("Use this fancy feature")
}.padding()
NavigationLink(destination: docView()) {
Text("Documentation")
}
}.navigationBarTitle("About", displayMode: .inline)
}
}
}
状态变量用于内部视图,因此应该在内部初始化(最好是将其私有化)
struct aboutView:View{
@环境对象变量userData:userData
@国家私有变量useHomeCur:Bool=false//
struct aboutView: View {
@EnvironmentObject var userData: UserData
@State private var useHomeCur: Bool = false // << here !!
struct aboutView: View {
@EnvironmentObject var userData: UserData
@State private var useHomeCur: Bool
init(useHomeCur: Bool = false) {
_useHomeCur = State(initialValue: useHomeCur) // << here !!
}
...