使用参数从子视图调用父视图的函数

时间:2020-06-12 08:02:58

标签: swiftui

我想使用参数从子View调用父View的函数。
以下代码是错误的。

struct ContentView: View {
    func update(value: Double) {
        print("called update: \(value)")
    }

    var body: some View {
        ChildView(onUpdate: update)
    }
}

struct ChildView: View {
    var onUpdate: (value: Double) -> ()

    var body: some View {
        VStack {
            Text("child view")
            Button(action: {
                self.onUpdate(value: 3.0)
            }) {
                Text("onUpdate")
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

此处是固定变体。使用Xcode 11.4 / iOS 13.4进行了测试

struct ChildView: View {
    var onUpdate: (Double) -> ()   // << no labels, just types !!

    var body: some View {
        VStack {
            Text("child view")
            Button(action: {
                self.onUpdate(3.0)
            }) {
                Text("onUpdate")
            }
        }
    }
}