AWS Amplify Auth + React Native - значение атрибута для номера телефона не должно быть нулевым - PullRequest
1 голос
/ 20 марта 2019

Я выполнил следующие шаги, чтобы заставить вход в систему Amplify Auth работать на React Native:

  1. созданный проект с Экспо, изгнанный в ЭкспоКит
  2. пряжа с добавлением AWS-усиление, пряжа с добавлением AWS-усиление-реагирование-нативный
  3. Реактивная ссылка
  4. усиление инициализации
  5. усилить, настроить
  6. усилить добавить аутентификацию
  7. усилить толчок

Запущенное приложение React Native состоит из основного компонента App.js со следующим импортом:

import React, { Component } from "react";
import { StyleSheet, View, Text } from "react-native";
import Amplify, { Auth } from "aws-amplify";
import AWSConfig from "./aws-exports";
Amplify.configure(AWSConfig);
import Tabs from "./Tabs";

Мой основной файл App.js также имеет две вкладки (одна для компонента SignIn, а другая для компонента SignUp).

Мой компонент SignUp выглядит следующим образом:

...
  signUp = () => {
    Auth.signUp({
      username: this.state.username,
      password: this.state.password,
      attributes: {
        email: this.state.email
      }
    })
      .then(() => console.warn("successful sign up!"))
      .catch(err => console.warn("error signing up!: ", err));
  };

  confirmSignUp = () => {
    Auth.confirmSignUp(this.state.username, this.state.confirmationCode)
      .then(() => console.warn("successful confirm sign up!"))
      .catch(err => console.warn("error confirming signing up!: ", err));
  };

  render() {
    return (
      <View style={styles.container}>
        ...
        <Button title="Confirm Sign Up" onPress={this.confirmSignUp} />
      </View>
    );
  }
...

Моя проблема в том, что когда я пытаюсь зарегистрировать пользователя, я получаю:

Значение атрибута для номера телефона не должно быть нулевым

Когда я проверяю атрибуты пула пользователей, который был автоматически создан в: Консоль AWS cognito затем

электронная почта

является единственным «обязательным стандартным атрибутом».

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 22 марта 2019

Вы можете сделать что-то вроде этого: В состоянии инициализации класса вашего компонента запомните входные данные «email_address» и «phone_number» и убедитесь, что для функции «onChange» textInput установлено значение «this.setState ({phone_number: value})» *

`class myClass extends React.component{
    constructor(props){
        super(props)
        this.state={(email_address = undefined;
                     phone_number= undefined;)}
  }
    ... //Same code here

   signUp = () => {
    Auth.signUp({
      username: this.state.username,
      password: this.state.password,
      attributes: {
        email: this.state.email
        phone_number: this.state.phone_number
      }
    })
      .then(() => console.warn("successful sign up!"))
      .catch(err => console.warn("error signing up!: ", err));
  };

    ....//Some code
}`
...