繁体   English   中英

如何快速初始化闭包变量?

[英]How to initialise closure variable in swift?

这是我的主要结构。 并且我试图在 listView 选择和项目时收到回电。

struct Home: View {

    @State var selectdItem : Int = 0
    var body: some View {
        VStack{

            listView(onselecteditem: {selectdItem in
                self.selectdItem = selectdItem
            })
            resultView(selectedItem: self.$selectdItem)

        }

    }
}

我想在这个结构中的 init 中初始化我的闭包变量。 它在没有init的情况下工作,但我必须使用init。

struct listView : View
{
    var onSelectedItem : (Int) -> Void

    init(onselecteditem : (Int) -> Void) {

     // I would like to initialise onSelected closure variable here.   
    }

    var body : some View
    {
        List(1..<10)
        {
            item in
            Text("Item \(item)").onTapGesture {
                self.onSelectedItem(item)
            }
        }
    }
}

您可以将closure变量初始化为,

init(onselecteditem : @escaping (Int) -> Void) {
    self.onSelectedItem = onselecteditem
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM