I am building a List based on my elements in an array I fetched before.
I am fetching all the entities.. when the user makes a search in the search bar, I want to fi
filter your data BEFORE passing it to ForEach constuctor.
ForEach(self.documentItems.filter {self.checkSearchString(document: $0)}, id: \.self) { document in
HStack(spacing: 0)
{
ListRow(document: document).tag(document)
}
}
You need to use Group
to wrap different views provided by condition, like below
ForEach(self.documentItems, id: \.self) { document in
Group {
if (self.checkSearchString(document: document))
{
HStack(spacing: 0)
{
ListRow(document: document).tag(document)
}
}
else
{
EmptyView()
}
}
}
List(selection: $selectedDocument)
{
ForEach(self.documentItems, id: \.self) { document in
self.checkSearchString(document: document) ? extractedHstack() : emptyView()
}
Extract your hstack and use a trinary with an empty view. Let me know if this works I did this from memory no IDE on this computer.