ней есть uistate. По какому принципу что-то является частью uistate, что-то вьюмодели? вот например, есть экран для поиска чего-либо, по результатам поиска мы получаем какой-то список и отображаем его. Вот этот список должен быть частью uistate как то, что отображается на экране или частью вьюмодели, как часть бизнес логики?
Условно есть Component, который из себя представляет список из элементов, который можно отфильтровать с помощью поисковой строки модель для отображения выглядит так: Model(val query: String, val elements: [Element]) модель для манипулирования состоянием выглядит так: State(val query: String, val allElements: [Element], val filteredElements: [Element]), где при изменении Model.elements <- Store.filteredElements.filter { element in predicate(element, query) }.ifEmpty { allElements }
не особо что-то понял, если поиск идёт через интернет запрос к репозиторию, по этому примеру выходит что во вьюмодели данных храниться не должно? или в uistate не должно в таком случае? ну просто нечего там хранить согласно примеру. можно какое-то правило высказать всё-таки. Вот конкретная ситуация ситуация, что должно быть где и почему: есть поле текста для поиска (переменная 1), сохранённая его копия (2) , чтобы можно было подгрузить ещё данных для этого поиска, даже если в поле для поиска что-то поменялось, но не была нажата кнопка поиска для запуска нового, и есть список результатов (3), поиск идёт на сервере, поэтому версия списка нам нужна одна только.
Обсуждают сегодня