Я не впевнений, чи є це антипатерном у цьому відважному світі SwiftUI, у якому ми живемо, але по суті, у мене є @EnvironmentObject із збереженою базовою інформацією про користувача, яку можуть викликати мої погляди.
У мене також є @ObservedObject, який володіє деякими даними, необхідними для цього представлення даних.
Коли з'явиться подання, я хочу використовувати цей @EnvironmentObject для ініціалізації @ObservedObject:
struct MyCoolView: View {
@EnvironmentObject userData: UserData
@ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID)
var body: some View {
Text("\(self.viewObject.myCoolProperty)")
}
}
На жаль, я не можу зателефонувати за змінною оточення до моменту ініціалізації:
"Неможливо використовувати член екземпляра" userData "в ініціалізаторі властивостей; ініціалізатори властивостей виконуються до того, як" self "буде доступний."
Я бачу кілька можливих маршрутів вперед, але всі вони відчувають себе хаками. Як я повинен підходити до цього?
Property wrappers are not yet supported on local properties
основному його висловлювання я не можу створити @ObservaObject методом init.
init
структуру.