如何在 SwiftUI Preview 的参数中声明返回 void 的函数

car*_*mez 4 swiftui

我正在尝试使用这个功能:

var handler: (String, (Bool) -> Void) -> Void

预览提供程序中显示的错误是调用中的参数缺少参数,但我不知道如何正确执行此操作。

插入 ', 处理程序: <#(String, (Bool) -> Void) -> Void#>'

如果您有一些有关在预览提供程序中处理这些类型的数据的文档或解释,我将非常感激。

jn_*_*pdx 6

由于闭包内的闭包,这有点棘手。Xcode 似乎不想内联第二个闭包,但假设它是在其外部定义的,它似乎工作正常:

struct MyView : View {
    var handler: (String, (Bool) -> Void) -> Void
    
    var body: some View {
        Text("Hello, world")
    }
}

struct TestView_Preview : PreviewProvider {
    static var boolHander : (Bool) -> Void = { _ in }
    
    static var previews: some View {
        MyView(handler:{ myString, boolHander in })
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里做出一些假设,因为您实际上没有包含任何显示其定义位置/方式的代码,但希望这能让您朝着正确的方向前进。