SwiftUI:ForEach过滤器布尔值

时间:2020-02-09 15:52:26

标签: foreach swiftui

我拼命尝试使用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)")
                }

            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

像这样更改您的server { server_name nextcloud.mydomain.de; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://<WEBSERVERIP>/nextcloud/; proxy_read_timeout 90; proxy_redirect off; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/mydomain.de/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/mydomain.de/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = nextcloud.mydomain.de) { return 301 https://$host$request_uri; } # managed by Certbot server_name nextcloud.mydomain.de; listen 80; return 404; # managed by Certbot }

ForEach

答案 1 :(得分:2)

List(array.filter { $0.show }){ (item) in
    Text(item.text)
}

更新:

let ids = [0,2]
let filteredItems = array.filter { ids.contains($0.id)}

仅用两个项目过滤了集合,其中Element.id == 0或Element.id == 2

array.filter {$ 0.show}是三个项目的集合,其中Element.show == true

您可以将其用作数据源

List(array.filter { ids.contains($0.id) }){ (item) in
    Text(item.text)
}

,它将为其每个源集合生成一个文本

两个条件(或更多条件)都可以根据需要与任何逻辑运算符一起应用