没有结果时从过滤器中获取输出
Get output out of filter when there are no results
我想知道,有没有办法在没有结果的情况下得到filter
的结果?
目前,作为解决方法,我有一个 ZStack 并将结果覆盖在 "No results"
消息之上。
但我想知道过滤器是否有条件?
if(array.count > 0) {
ForEach(array.filter({...}) { item in
// do things if found
// <-- check if no results here
}
} else {
Text("No results at all")
}
我知道这违背了过滤的想法,但我想我会检查一下以防我在所有搜索中遗漏了什么!
您需要检查 if
中的 filtered 数组是否为空:
let filteredArray = array.filter({...})
if !filteredArray.isEmpty {
ForEach(filteredArray) { item in
// do things if found
}
} else {
Text("No results at all")
}
嗯,已经回答了。但我只想再添加一项更改。与其使用 if
不如使用 guard
语句:
guard let filteredArray = array.filter({...}),
!filteredArray.isEmpty else {
Text("No results at all")
return
}
ForEach(filteredArray) { item in
// do things if found
}
您可以在此处阅读更多关于差异的信息:
我想知道,有没有办法在没有结果的情况下得到filter
的结果?
目前,作为解决方法,我有一个 ZStack 并将结果覆盖在 "No results"
消息之上。
但我想知道过滤器是否有条件?
if(array.count > 0) {
ForEach(array.filter({...}) { item in
// do things if found
// <-- check if no results here
}
} else {
Text("No results at all")
}
我知道这违背了过滤的想法,但我想我会检查一下以防我在所有搜索中遗漏了什么!
您需要检查 if
中的 filtered 数组是否为空:
let filteredArray = array.filter({...})
if !filteredArray.isEmpty {
ForEach(filteredArray) { item in
// do things if found
}
} else {
Text("No results at all")
}
嗯,已经回答了。但我只想再添加一项更改。与其使用 if
不如使用 guard
语句:
guard let filteredArray = array.filter({...}),
!filteredArray.isEmpty else {
Text("No results at all")
return
}
ForEach(filteredArray) { item in
// do things if found
}
您可以在此处阅读更多关于差异的信息: