Пользовательские кнопки формы входа не реагируют - PullRequest
0 голосов
/ 02 апреля 2019

Использование пользовательской формы входа в aws-ampify приводит к тому, что все кнопки не реагируют на нажатия.Состояние не меняется на Signedup или другой «забытый пароль»

Я работаю над настройкой формы входа для aws-ampify.Пользовательская форма входа появляется при запуске приложения, но все кнопки не реагируют на нажатия.Состояние также не меняется при нажатии «Регистрация» или «Забыли пароль».Я следую следующим статьям о том, как это сделать:

https://blog.kylegalbraith.com/2018/11/29/how-to-easily-customize-the-aws-amplify-authentication-ui/

https://aws -amplify.github.io / docs / js / authentication # customize-withauthenticator

Ниже приведены фрагменты моего кода:

import React, { Component } from 'react';
import .. from 'react-native';

import {SignIn} from 'aws-amplify-react-native';

export default class SignInScreen extends SignIn {
  constructor(props) {
    super(props);
    this._validAuthStates = ["signIn", "signedOut", "signedUp"];
  }
  showComponent(theme) {
    return (
    ...
        <TouchableHighlight style={[styles.buttonContainer, styles.loginButton]}
                            onClick={() => {super.signIn(); Alert.alert('Alert',"I clicked login")}}>
          <Text style={styles.loginText}>Login</Text>
        </TouchableHighlight>

        <TouchableHighlight style={styles.buttonContainer} onClick={() => super.changeState("forgotPassword")}>
            <Text style={styles.signupText}>Forgot your password?</Text>
        </TouchableHighlight>

        <TouchableHighlight style={styles.buttonContainer} onClick={() => super.changeState("signUp")}>
            <Text style={styles.signupText}>Sign up</Text>
        </TouchableHighlight>
      </View>
      </ScrollView>
      </SafeAreaView>
    );
  }
}

Ниже показано, как включить аутентификацию для моего приложения в App.js:

export default withAuthenticator(App, false, [
    <SignInScreen/>,
    <ConfirmSignIn/>,
    <VerifyContact/>,
    <SignUp/>,
    <ConfirmSignUp/>,
    <ForgotPassword/>,
    <RequireNewPassword />
])

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

Любые подсказки, предложения о том, почему это происходит?

Спасибо.

1 Ответ

0 голосов
/ 02 апреля 2019

Я разобрался с ответом. Для тех, кто может увидеть эту проблему, для TouchableHighlight: используйте onPress вместо onClick. Хотя реагировать-нативный не жалуется, он не работает.

вместо

<TouchableHighlight style={styles.buttonContainer} onClick={() => super.changeState("signUp")}>
            <Text style={styles.signupText}>Sign up</Text>
        </TouchableHighlight>

сделать следующее:

<TouchableHighlight style={styles.buttonContainer} onPress={() => super.changeState("signUp")}>
            <Text style={styles.signupText}>Sign up</Text>
        </TouchableHighlight>
...