Мне не нравится мой титул, но это лучшее, что я могу придумать. По сути, у меня есть два представления: SearchInput и SearchResultList. Пользователь вводит поисковый запрос с помощью SearchInput, нажимает «Перейти» и затем видит результаты поиска с помощью SearchResultList. Код:
struct SearchInput: View {
@State private var searchTerm: String = ""
var searchResult: [RTDocument] {
return RuntimeDataModel.shared.fetchRTDocuments(matching: self.searchTerm)
}
var body: some View {
NavigationView {
VStack {
TextField("Enter search term...", text: self.$searchTerm)
NavigationLink(destination: SearchResultList(
rtDocuments: self.searchResult
)) { Text("Go") } //NavigationLink
} //VStack
} //NavigationView
} //body
} //SearchInput
Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда пользователь вводит символ в TextField, обновляется переменная связанного состояния searchTerm, в результате чего NavigationLink переоценивает свое назначение - что вызываетОсновные данные извлекаются из вычисляемой переменной searchResult.
Я бы хотел, чтобы выборка происходила только один раз, когда пользователь нажимает «Перейти». Есть ли способ сделать это?