Как создать несколько экранов регистрации в реагировать на родной - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть RootNav и MainNav, в моем RootNav у меня есть экран входа и регистрации. Когда пользователь регистрируется через firebase с электронной почтой и паролем, он автоматически регистрирует их и переходит в MainNav. я хочу иметь возможность отправлять их на несколько экранов после их регистрации через firebase, например NameScreen и Age Screen, чтобы пользователь вводил свое имя, чтобы я мог добавить его в базу данных firebase.

Я использую stackNavigator.

App.js

import React from 'react';
import {Stylesheet, View, Text} from 'react-native';
import {AppLoading, Asset} from 'expo';
import * as firebase from 'firebase';

import RootNav from './navigation/RootNav';
import MainNav from './navigation/MainNav';

// SplashScreen
import SplashScreen from './screens/SplashScreen'

const firebaseConfig = {
   apiKey: "ProjectKey",
   authDomain: "projectDomain.com",
   databaseURL: "https://URl.com",
   pojectID: "pojectID",

}

export default class App extends React.Component{
  constructor(props){
   super(props);
   this.state = {
     isLoadingComplete: false,
     isAuthenticatingReady: false,
     isAuthenticated: false,
};

SplashScreen.load(v => this.setState({isLoadingComplete: true}));
if (!firebase.apps.length) {
  firebase.initializeApp(firebaseConfig);
}
firebase.auth().onAuthStateChanged(this.onAuthStateChanged);
}


onAuthStateChanged = (user) =>{
  this.setState({isAuthenticatingReady: true});
  this.setState({isAuthenticated: !!user});

}
 render(){
     return (
    <View style={{flex: 1,}}>

      {
        (this.state.isLoadingComplete) ? (this.state.isAuthenticated) ? 
        <MainNav /> : <RootNav /> : <SplashScreen />

      }
    </View>
  )
}
}

MainNav.js

import React from 'react';
import { createStackNavigator,} from 'react-navigation';
import MainScreen from './../screens/MainScreen';
import Check from './../navigation/Check';

const MainNav = createStackNavigator(
  {
     Check: {screen: Check},
     Home: { screen: MainScreen },

  },
  {
     navigationOptions: () => ({
        header: null,
     })
  }
);

export default MainNav;

RootNav.js

import React from 'react';
import { createStackNavigator,} from 'react-navigation';
import LoginScreen from './../screens/auth/LoginScreen';
import SignUpScreen from './../screens/auth/SignUpScreen';
import addNameScreen from '../screens/auth/addNameScreen';
import addAgeScreen from '../screens/auth/addAgeScreen';

const RootNav = createStackNavigator(
  {
    Login: { screen: LoginScreen },
    SignUp: { screen: SignUpScreen },
    addName: {screen: addNameScreen},
    addAge: {screen: addAgeScreen},
  },
  {
    navigationOptions: () => ({
        header: null,
    })
  }
);

export default RootNav;

Как бы я мог это сделать? Любое указание поможет мне, пожалуйста, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...