当前位置: 首页 > 知识库问答 >
问题:

参数SwiftUI中的可选绑定

农英杰
2023-03-14

这是我的可选装订

@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)

我得到了这个错误:

绑定

共有1个答案

狄灵均
2023-03-14

为此目的有特殊的绑定构造函数

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("")
    }
}

备份

 类似资料:
  • 我有一个视图,有时用于浏览数据,有时用于选择数据。 当用于浏览时,它由NavigationLink呈现。 当用于选择数据时,它以模式表的形式显示,并通过将绑定布尔值isPresented设置为false来关闭,因此我可以使用表函数onDismiss。 然而,在浏览模式下,我需要一种方法来跳过初始化isPresent绑定布尔值。正确的方法是view init()上的可选参数,但我尝试的所有内容都会抛

  • 我正在尝试构建一个自定义的< code>NavBar,带有一些可选的< code >视图,比如searchbar(但前提是视图需要显示它)。 基本上,我需要在视图中传递一些带有参数。 下面是一个示例: 我所说的属性是和。但是执行 或 会引发编译错误: 无法将类型“绑定?”的值分配给类型“绑定” 你知道我该如何解决这个问题吗? 还是有更好的方法来做我想做的事?

  • 如何拥有绑定类型的可选参数

  • 问题内容: Go可以有可选参数吗?还是可以只定义两个具有相同名称和不同数量参数的函数? 问题答案: Go没有可选参数,也不支持方法重载: 如果方法调度也不需要进行类型匹配,则可以简化该方法。其他语言的经验告诉我们,使用具有相同名称但签名不同的多种方法有时会很有用,但在实践中也可能会造成混淆和脆弱。在Go的类型系统中,仅按名称进行匹配并要求类型一致是简化的主要决定。

  • (macOS 10.15 beta 和 Xcode 11 beta 5) 我正在使用的SwiftUI教程(https://www.raywenderlich.com/3715234-swiftui-getting-started#toc-anchor-005)包括以下视图: 该视图是在与另一个视图相同的文件中声明的,可以作为该视图的组件进行预览。 正如在教程中使用的那样,它可以工作,但我后来将视图

  • 问题内容: 我有一个用户定义的函数,该函数已在许多存储过程中使用,这些函数将为我返回一些值。如果可以的话,可以在其中添加一个新的可选参数。 如果我不传递任何值,则应为null;如果传递一些值,则应采用它。我不想去改变所有的存储过程。 范例程式码 我可以用吗 问题答案: 如果您不想调整所有引用该函数的现有存储过程,那么我认为您需要使用现有代码中的代码创建一个新函数 然后只需将现有功能更改为以下内容