SwiftUI 绑定默认值(参数标签 '(wrappedValue:)' 不匹配任何可用的重载)
Posted
技术标签:
【中文标题】SwiftUI 绑定默认值(参数标签 \'(wrappedValue:)\' 不匹配任何可用的重载)【英文标题】:SwiftUI Binding default value (Argument labels '(wrappedValue:)' do not match any available overloads)SwiftUI 绑定默认值(参数标签 '(wrappedValue:)' 不匹配任何可用的重载) 【发布时间】:2020-07-09 01:13:53 【问题描述】:在 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
我想创建一个默认使用常量布尔值但可以被“真实”绑定覆盖的视图:
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 定义这样的默认值?
【问题讨论】:
【参考方案1】:这里是
struct MyView: View
@Binding var a: Bool
init(a: Binding<Bool> = .constant(true))
_a = a
var body: some View
Text("MyView")
【讨论】:
但是当你使用.constant
时,这个值永远不会改变。
@DanielSaidi,PO 并没有要求它可以更改,这是不同的情况。
@Asperi 但是,如果值应该像我的问题***.com/questions/68101919/… 那样可以更改,你知道一些解决方法吗?以上是关于SwiftUI 绑定默认值(参数标签 '(wrappedValue:)' 不匹配任何可用的重载)的主要内容,如果未能解决你的问题,请参考以下文章