首页 > 解决方案 > SwiftUI:ForEach 过滤器布尔值

问题描述

我正在拼命地尝试使用 ForEach 只显示具有 true 值的内容。无论我尝试什么,也会显示 false 。空气现在已经消失了,我认为这很简单,我只是看不到它。这是应该应用的一段代码:

import SwiftUI

struct txt: Identifiable {
    var id: Int
    var text: String
    var show: Bool
}

struct ContentView: View {

    @State private var array = [
        txt(id: 000, text: "True", show: true),
        txt(id: 001, text: "True", show: true),
        txt(id: 002, text: "True", show: true),
        txt(id: 003, text: "False", show: false),
        ]

    var body: some View {
        NavigationView {
            List {
                ForEach(array.indices, id: \.self) { idx in
                   Text("\(self.array[idx].text)")
                }

            }
        }
    }
}

标签: foreachswiftui

解决方案


像这样改变你ForEach

ForEach(array) { arr in
     if arr.show {
         Text("\(arr.text)")
     }
}

推荐阅读