参数SwiftUI中的可选绑定 [英] Optional Binding in parameter SwiftUI
本文介绍了参数SwiftUI中的可选绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下是我的可选绑定
@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<;Bool?>;"不能转换为"Binding<;Bool?>;"
推荐答案
有专门的绑定构造函数用于此目的
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("")
}
}
这篇关于参数SwiftUI中的可选绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文