如何在SwiftUI预览';s参数

如何在SwiftUI预览';s参数,swiftui,Swiftui,我正在尝试使用此功能: var处理程序:(字符串,(Bool)->Void)->Void 预览提供程序中显示的错误是调用中的参数缺少参数,但我不知道如何正确执行 插入',处理程序:Void)->Void#>' 如果您有一些关于在预览提供程序中处理这些类型数据的文档或说明,我将不胜感激。这是一个小把戏,因为闭包中有闭包。Xcode似乎不想内联第二个闭包,但假设它是在它之外定义的,它似乎工作得很好: struct MyView : View { var handler: (String, (

我正在尝试使用此功能:

var处理程序:(字符串,(Bool)->Void)->Void

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

插入',处理程序:Void)->Void#>'


如果您有一些关于在预览提供程序中处理这些类型数据的文档或说明,我将不胜感激。

这是一个小把戏,因为闭包中有闭包。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 })
    }
}

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

问题似乎在于“handler”没有初始值,它以某种方式被视为绑定,因此,预览提供程序和父视图要求提供该值


={{{,{in}
作为“handler”的初始值解决了问题。

谢谢您的帮助,您的解决方案非常接近,我只需为handler提供一个初始值,即
={{{{,{in}
。是的,这也会起作用。如果答案是有用的,即使你没有把它标记为正确的,请考虑一下投票。做完了,你给了我很好的答案。你也可以给自己的问题加上一个答案,并把它标记为被接受,这样问题就解决了。