我拼命尝试使用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)")
}
}
}
}
}
答案 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)
}
,它将为其每个源集合生成一个文本
两个条件(或更多条件)都可以根据需要与任何逻辑运算符一起应用