Как передать данные в представление и использовать их непосредственно в «заголовке»? Все созданные мной руководства обращаются к данным в теле представления, что отлично работает, но я хочу вызвать метод graphlql из UpdateAccountView и затем визуализировать представление на основе результата.
Мой класс для передачи данных:
class Account {
var tel: Int
init(tel: Int) {
self.tel = tel
}
}
Мое основное представление, в котором класс инициализируется (упрощенно - обычно "тел" поступает из ввода)
struct ContentView: View {
var account: Account = Account(tel: 123)
var body: some View {
NavigationView {
NavigationLink(
destination: UpdateAccountView(account: account),
label: {
Text("Navigate")
})
}
}
}
Представление, которое я вызываю, чтобы выполнить запрос и вызвать следующее представление, основанное на результате, UpdateAccount принимает в качестве параметра tel: Int. И вот в чем проблема. Я не могу получить доступ к account.tel из переданных данных.
struct UpdateAccountView: View {
var account: Account
@ObservedObject private var updateAccount: UpdateAccount = UpdateAccount(tel: account.tel)
@ViewBuilder
var body: some View {
if updateAccount.success {
AccountVerifyView()
} else {
ContentView()
}
}
}
Ошибка:
Невозможно использовать член экземпляра 'account' в инициализаторе свойства; инициализаторы свойств запускаются до того, как 'self' станет доступным. Я понял, что здесь не нужно. Спасибо за помощь.