Swift UI: содержимое Textfiled становится пустым, когда происходит асинхронное c (AWS Cognito's continueWith) - PullRequest
0 голосов
/ 25 марта 2020

Я использую AWS Cognito для аутентификации пользователя.

В SignInView.swift есть текстовое поле и защищенное поле для электронной почты и пароля пользователя.

Когда пользователь пишет свой собственный адрес электронной почты и пароль, привязанный к его учетной записи, он может набрать sh Sign In Button.

После нажатия кнопки вызывается функция signIn().

Это signIn() функция.

func signIn(email: String, password: String) -> Promise<Bool> {
        return Promise<Bool> (in: .background, { resolve, reject, _ in
            self.userPool.getUser(email).getSession(email, password: password, validationData: nil).continueWith(block: {task -> Void in
                if let error = task.error as NSError? {
                    //
                    // Sign up Failed
                    //
                    let errorType = error.userInfo["__type"] as? String
                    print(errorType!)

                    DispatchQueue.main.async {
                        self.errorHandler(errorType: errorType!)
                        reject(error)
                    }

                    return
                }
                // Signed Up
                DispatchQueue.main.async {
                    self.email = email
                    let authDetails = AWSCognitoIdentityPasswordAuthenticationDetails(username: email, password: password)
                    self.passwordAuthenticationCompletion?.set(result: authDetails)
                    self.userErrorState = .none
                    self.isLoading = false
                    self.refresh()
                }
            })
        })
    }

Здесь возникает проблема, заключающаяся в том, что содержимое каждых двух текстовых полей, как я уже говорил, исчезает при вызове .continuedWith из signIn() function.

Но две переменные, привязанные к двум текстовым полям, имеют значение фактического пользовательского ввода.

Я хочу знать, почему исчез контент и как это исправить.

Спасибо!

...