所以我有這個TestView接受headerContent和bodyContent,
struct TestView<Content: View>: View {
var headerContent: (() -> Content)? = nil
let bodyContent: () -> Content
var body: some View {
VStack {
headerContent?()
bodyContent()
}
}
}
我用它作為,
struct ContentView: View {
var body: some View {
TestView(headerContent: {
Text("HeaderContent")
}) {
ScrollView {
}
}
}
}
但我收到以下錯誤,
Cannot convert value of type 'ScrollView<EmptyView>' to closure result type 'Text'
我錯過了什么?
uj5u.com熱心網友回復:
您需要有兩個View泛型,因為headerContent和bodyContent不一樣。
沒有這個,你是說有一些具體的型別Content符合View. 然而,無論是Text和ScrollView不同型別的,不一樣的。
代碼:
struct TestView<HeaderContent: View, BodyContent: View>: View {
var headerContent: (() -> HeaderContent)? = nil
let bodyContent: () -> BodyContent
var body: some View {
VStack {
headerContent?()
bodyContent()
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/368988.html
