【问题标题】:Passing to a SwiftUI struct, a binding value [duplicate]传递给 SwiftUI 结构,绑定值 [重复]
【发布时间】:2020-10-17 08:31:04
【问题描述】:

希望这是一个简单的问题。我正在尝试从 FilterView_Previews 结构 @Binding 值传递给 FilterViewa 结构,该值是这样的 Bool:

import SwiftUI

struct FilterView: View {
     @Binding var isNavigationBarHidden: Bool
    
    var body: some View {
        ZStack {
            Text("Filters go here")
        }
        .navigationBarTitle("")
        .onAppear {
            self.isNavigationBarHidden = false
        }
    }
}

#if DEBUG
struct FilterView_Previews: PreviewProvider {
    var isHidden: Bool = true
    
    static var previews: some View {
        FilterView(isNavigationBarHidden: isHidden)
    }
}
#endif

但是,值 isHidden 被标记为“无法将 'Bool' 类型的值转换为预期的参数类型 'Binding'。在这种情况下,如何在 FilterView_Previews 结构中创建一个合适的 @Binding 值来满足编译器的要求?

【问题讨论】:

标签: swift swiftui


【解决方案1】:

您可以尝试在预览中使用 constant 绑定:

struct FilterView_Previews: PreviewProvider {
    static var previews: some View {
        FilterView(isNavigationBarHidden: .constant(true))
    }
}

【讨论】:

  • 这确实有效,谢谢你。您将如何创建一个作为 Binding 值的变量,而不仅仅是传入一个常量?
  • @PerryHoekstra 实际上我刚刚意识到这个问题已经被问过。请参考我建议的帖子以获得更多解释。
猜你喜欢
  • 2021-04-04
  • 2010-10-19
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
相关资源
最近更新 更多