SwiftUI 绑定默认值(参数标签 '(wrappedValue:)' 不匹配任何可用的重载)
SwiftUI Binding default value (Argument labels '(wrappedValue:)' do not match any available overloads)
在 Swift 中,您可以在可在初始化时覆盖的结构上定义默认值:
struct myStruct {
var a: Int = 1
}
var instance1 = myStruct() // instance1.a -> 1
var instance2 = myStruct(a: 10) // instance2.a -> 10
然而,当我尝试将此应用到 SwiftUI 视图中的绑定时,出现错误:
struct MyView: View {
@Binding var a: Bool = Binding.constant(true)
var body: some View {
Text("MyView")
}
}
Argument labels '(wrappedValue:)' do not match any available overloads
我想创建一个默认使用常量布尔值但可以被 "real" 绑定覆盖的视图:
struct ContainerView: View {
@State var hasSet = false
var body: some View {
Group {
MyView(a: $hasSet)
MyView() // should be equivalent to MyView(a: .constant(true))
}
}
}
是否可以为 SwiftUI 中的 Binding 定义这样的默认值?
在这里
struct MyView: View {
@Binding var a: Bool
init(a: Binding<Bool> = .constant(true)) {
_a = a
}
var body: some View {
Text("MyView")
}
}
在 Swift 中,您可以在可在初始化时覆盖的结构上定义默认值:
struct myStruct {
var a: Int = 1
}
var instance1 = myStruct() // instance1.a -> 1
var instance2 = myStruct(a: 10) // instance2.a -> 10
然而,当我尝试将此应用到 SwiftUI 视图中的绑定时,出现错误:
struct MyView: View {
@Binding var a: Bool = Binding.constant(true)
var body: some View {
Text("MyView")
}
}
Argument labels '(wrappedValue:)' do not match any available overloads
我想创建一个默认使用常量布尔值但可以被 "real" 绑定覆盖的视图:
struct ContainerView: View {
@State var hasSet = false
var body: some View {
Group {
MyView(a: $hasSet)
MyView() // should be equivalent to MyView(a: .constant(true))
}
}
}
是否可以为 SwiftUI 中的 Binding 定义这样的默认值?
在这里
struct MyView: View {
@Binding var a: Bool
init(a: Binding<Bool> = .constant(true)) {
_a = a
}
var body: some View {
Text("MyView")
}
}