Быстрая загрузка пользовательских данных для панели управления после входа в систему - PullRequest
1 голос
/ 13 июля 2020

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

По сути, для получения данных у меня есть следующее:

struct HomeViewCollection: View {

    @Binding var isAuthenticated: Bool
    @ObservedObject var userController: UserController = UserController()

    var body: some View {
        VStack {
            Text("Hello \(userController.firstName)!")
        }
    }
}

Я просто не уверен, как я могу активировать fetchUser из View.

Я пробовал это в контроллере

init() {
    guard let tokenData = KeyChain.load(key: "token") else { return }
    var token = String(data: tokenData, encoding: .utf8)
    if(token != nil) {
        print("Token: \(token)")
        fetchUser(token: token!)
    }
}

Это не помогло работать, а затем я попробовал userController.fetchUser(token: KeyChainTokenHere), и это не сработало, потому что оно не соответствует структуре.

1 Ответ

0 голосов
/ 13 июля 2020

Попробуйте передать token в HomeViewCollection и инициировать вызов в блоке завершения onAppear.

struct HomeViewCollection: View {

    var token: String
    @Binding var isAuthenticated: Bool
    @ObservedObject var userController = UserController()

    var body: some View {
        VStack {
            Text("Hello \(userController.firstName)!")
        }
        .onAppear {
            self.userController.fetchUser(token: self.token)
        }
    }
}

Также убедитесь, что свойство firstName установлено.

@Published var firstName: String = "" {
    didSet {
        print("firstName is set as \(firstName)")
    }
}
...