Что мне следует использовать: State или ObservableObject? - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в SwiftUI и пытаюсь понять, как мне следует обрабатывать привязки, состояние и поток данных.

Подводя итог тому, что я пытаюсь сделать:

У меня есть одно представление, в котором пользователь может нажать на несколько «карточек», чтобы выбрать их. Каждая из этих карточек представляет собой свое собственное частичное представление, которое необходимо обновить, чтобы отразить, выбраны они или нет. Когда пользователь выбирает карточку, этот элемент помещается в массив, который я использую для отслеживания выбранных карточек. После того, как пользователь выберет и нажмет кнопку, я хочу взять этот массив выбранных объектов и использовать их в модели для выполнения над ним дополнительных действий. Так что в основном мне нужно, чтобы этот «выбранный массив» был доступен и синхронизирован в моем основном представлении, в моих частичных представлениях и в моей модели.

Насколько я могу судить, у меня есть два варианта (без учета EnvironmentObjects): кому принадлежит состояние этого массива. Один из них - объявить его как @State в моем основном представлении, передать его моим частичным представлениям, а затем также передать его в некоторую функцию в моей модели, как только пользователь закончит ее заполнение. Второй вариант - это владение моделью и использование ее как @ObservedObject в моем основном представлении и передача этого экземпляра модели в мои частичные представления. Кажется, что обе эти опции работают нормально и ведут себя одинаково.

Итак, возникает вопрос: какой вариант мне следует использовать? Передавать экземпляры модели во вложенные представления - это хорошая идея? Есть ли какая-то фундаментальная концепция SwiftUi и Combine, которую мне здесь не хватает?

Спасибо!

...