参数 SwiftUI 中的可选绑定
Posted
技术标签:
【中文标题】参数 SwiftUI 中的可选绑定【英文标题】:Optional Binding in parameter SwiftUI 【发布时间】:2020-06-05 14:12:35 【问题描述】:这是我的可选绑定
@Binding var showSheetModifFile : Bool?
@Binding var fileToModify : File?
init( showSheetModifFile : Binding<Bool?>? = nil, fileToModify : Binding<File?>? = nil)
_showSheetModifFile = showSheetModifFile ?? Binding.constant(nil)
_fileToModify = fileToModify ?? Binding.constant(nil)
所以现在当我尝试调用这个构造函数时:
@State var showModifFileSheet : Bool? = false
@State var fileToModify : File? = File()
...
SingleFileView(showSheetModifFile: self.$showModifFileSheet, fileToModify: self.$fileToModify)
我收到了这个错误:
'Binding
' 不能转换为'Binding ?'
【问题讨论】:
这个问题类似:How to assign an optional Binding parameter in SwiftUI? 是的,但接受的答案没有显示如何调用构造函数 【参考方案1】:为此目的有一个特殊的 Binding 构造函数
SingleFileView(showSheetModifFile: Binding(self.$showModifFileSheet),
fileToModify: Binding(self.$fileToModify))
更新:替代解决方案
struct FileDemoView: View
@State var showModifFileSheet : Bool? = false
@State var fileToModify : File? = File()
var body: some View
SingleFileView(showSheetModifFile: $showModifFileSheet, fileToModify: $fileToModify)
struct SingleFileView: View
@Binding var showSheetModifFile : Bool?
@Binding var fileToModify : File?
init(showSheetModifFile : Binding<Bool?> = .constant(nil), fileToModify : Binding<File?> = .constant(nil))
_showSheetModifFile = showSheetModifFile
_fileToModify = fileToModify
var body: some View
Text("")
【讨论】:
我仍然有错误:无法转换类型 'BindingBinding<Bool?>?
?以上是关于参数 SwiftUI 中的可选绑定的主要内容,如果未能解决你的问题,请参考以下文章