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

kus*_*uya 5 swiftui

我想用参数View从 Child 调用 Parent 的函数。 下面的代码是错误的。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")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Asp*_*eri 3

这是固定变体。使用 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")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)