![](/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.