SpashScreen React Native - PullRequest
       31

SpashScreen React Native

0 голосов
/ 17 февраля 2020

Итак, я пытаюсь создать экран spla sh для своего собственного приложения реакции на android, и я сталкиваюсь с проблемой, когда кажется, что он не может SpashScreen.hide () из-за моего aws - усилить с помощью аутентификатора. Он просто постоянно остается на экране spla sh

const AppContainer = createAppContainer(App);

class RealApp extends React.Component {

  componentDidMount() {
     SplashScreen.hide();
  }
  constructor(props) {
    super(props);

  }

  render() {

    return( 

        <AppContainer></AppContainer>
    );
  }
}

export default withAuthenticator(RealApp, {
  signUpConfig,
  usernameAttributes
});

При этом он постоянно остается на изображении SplashScreen. Затем я немного изменил его и избавился от «WithAuthenticator» следующим образом:

const AppContainer = createAppContainer(App);

export default class RealApp extends React.Component {

  componentDidMount() {
     SplashScreen.hide();
  }
  constructor(props) {
    super(props);

  }

  render() {

    return( 

        <AppContainer></AppContainer>
    );
  }
}

Это сработало в том смысле, что показывал SplashScreen, а затем мою страницу входа в систему Amplify, но нижний Навбар уже отображался. со страницей входа в систему, чтобы можно было переключаться на разные страницы, только пользовательский интерфейс расширенного входа все еще был на домашней странице и т. д. c.

1 Ответ

0 голосов
/ 17 февраля 2020

Вместо экрана Hide Spla sh просто перейдите на другой экран с помощью функции setTimeout

componentDidMount() {
    globalAny.isEditable = true;

    if (Constant.isIosDevice()) {
      if (CommonTask != undefined) {
        CommonTask.getStatusHeight((error: any, events: any) => {
          // console.log(events);
          Constant.setStatusHeight({
            top: events.top,
            bottom: events.bottom
          });
        });
      }
    } else {
      Constant.setStatusHeight({
        top: StatusBar.currentHeight,
        bottom: 0
      });
    }

    // AsyncStorage.setItem("defaultUserData","0");
    setTimeout(() => {
      this._token();
    }, 3000);
  }
...