![](/img/trans.png)
[英]UIKit UIViewController that passes a Binding to a SwiftUI View
[英]How to make a view that takes a Binding and passes it to another Binding in the view - SwiftUI
我想知道如何将绑定变量传递给 Slider 视图
struct TodayItemView: View {
@State var progress = 0.0
var body: some View {
VStack {
Slider(value: $progress,
in: 0...1,
step: 0.25)
}
}
}
如果我将@State 更改为@Binding,它会显示很多错误消息,如下所示
无法将“Double”类型的值转换为指定的“Binding”类型
调用中的无关参数 label 'wrappedValue:'
无法推断通用参数“V”
但是,我想让它具有该变量的@Binding,因为我将在另一个视图中使用这个视图。
有什么解决办法吗?
具有@Binding
的视图不能拥有/存储该值。 编译器错误来自= 0.0
您需要做的是创建一个存储值的包装视图(当您想使用它而不传递值时)
struct TodayItemView: View {
@Binding var progress: Double
var body: some View {
VStack {
Slider(value: $progress,
in: 0...1,
step: 0.25)
}
}
}
struct SelfContainedTodayItemView {
@State var progress: Double = 0.0
var body: some View {
TodayItemView(progress: $progress)
}
}
然后,您可以在未传递绑定的情况下使用SelfContainedTodayItemView
并在您这样做的情况下使用TodayItemView
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.