在 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]
    }