конструкторы классов должны вызываться с «новой» ошибкой в ​​React-native - PullRequest
0 голосов
/ 21 января 2020

Так что я пытаюсь использовать ответную нативную и aws -усилитель для создания веб-приложения и мобильного приложения с одной кодовой базой. Теперь я только добавил компонент withAuthenticator в свое приложение, которое отлично работает на мобильной части, но когда я запускаю веб-приложение в браузере, я не могу ввести в поле аутентификации, то есть, если я нажимаю на него, появляется курсор и сразу исчезает удивительно, хотя, если я нажимаю и удерживаю, я внезапно могу печатать, пока я держу кнопку мыши. Поэтому после этого я попытался вместо этого создать свой собственный аутентификатор, который отлично работал для мобильных устройств, но в Интернете он выдал ошибку class constructors must be invoked with 'new'. Мой код ниже, надеюсь, кто-то может мне помочь с этим. Спасибо!

  class MySignIn extends SignIn {

    constructor(props) {
      super(props);   
      this.state = {
          username: null,
          password: null,
          error: null
      }
      this.checkContact = this.checkContact.bind(this);
      this.signIn = this.signIn.bind(this);
  }


    render() {
      if (this.props.authState !== 'signIn') {
        return null;
      }
      return(
        <View style={{flex:1, backgroundColor: 'blue'}} behavior="padding">
        <Text>Stuff and Stuff</Text>
    </View>
      );
    }
  }

  export default withAuthenticator(Signout, false, [
    <MySignIn/>,
    <ConfirmSignIn/>,
    <VerifyContact/>,
    <SignUp/>,
    <ConfirmSignUp/>,
    <ForgotPassword/>,
    <RequireNewPassword />
  ]);

1 Ответ

0 голосов
/ 21 января 2020

class MySignIn extends SignIn это правильно? Обычно я импортировал класс class MySignIn extends React.Component

, и это работает, потому что они импортировали вход из

import { ConfirmSignIn, ConfirmSignUp, ForgotPassword, RequireNewPassword, SignIn, SignUp, VerifyContact, withAuthenticator } from 'aws-amplify-react';

, и, следовательно, это пользовательский компонент класса, следовательно, он работает

// This is my custom Sign in component
class MySignIn extends SignIn {
  render() {
    ...
  }
} 

это работает. Надеюсь, это поможет

...