在 SwiftUI 中渲染存储在数组中的视图
Rendering views stored in an array in SwiftUI
我有一个视图数组存储在我想要呈现的变量中。这对我来说似乎非常简单明了——但是,SwiftUI 无法呈现它。有谁知道为什么会这样?
struct TestView: View {
@State private var currentSelectedView = 0
@State private var quote = "Hello 123"
var body: some View { // Failed to produce diagnostic for expression
let viewArray = [FirstTextView(quote:$quote), SecondTextView(quote:$quote)]
viewArray[0]
viewArray[1]
}
}
struct FirstTextView: View {
@Binding var quote:String
var body: some View {
Text(quote)
}
}
struct SecondTextView: View {
@Binding var quote:String
var body: some View {
Text(quote)
}
}
struct TestView_Previews: PreviewProvider {
static var previews: some View {
TestView()
}
}
试试这个。问题是数组的元素类型不同。
var body: some View {
let viewArray = [AnyView(FirstTextView(quote:$quote)), AnyView(SecondTextView(quote:$quote))]
viewArray[0]
viewArray[1]
}
我有一个视图数组存储在我想要呈现的变量中。这对我来说似乎非常简单明了——但是,SwiftUI 无法呈现它。有谁知道为什么会这样?
struct TestView: View {
@State private var currentSelectedView = 0
@State private var quote = "Hello 123"
var body: some View { // Failed to produce diagnostic for expression
let viewArray = [FirstTextView(quote:$quote), SecondTextView(quote:$quote)]
viewArray[0]
viewArray[1]
}
}
struct FirstTextView: View {
@Binding var quote:String
var body: some View {
Text(quote)
}
}
struct SecondTextView: View {
@Binding var quote:String
var body: some View {
Text(quote)
}
}
struct TestView_Previews: PreviewProvider {
static var previews: some View {
TestView()
}
}
试试这个。问题是数组的元素类型不同。
var body: some View {
let viewArray = [AnyView(FirstTextView(quote:$quote)), AnyView(SecondTextView(quote:$quote))]
viewArray[0]
viewArray[1]
}