首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应导航不导航

反应导航不导航
EN

Stack Overflow用户
提问于 2018-12-22 13:40:54
回答 1查看 70关注 0票数 0

我正在开发一个应用程序,并在我的AuthenticationLoadingScreen中使用来自Firebase的侦听器AuthenticationLoadingScreen,这样我就可以根据这个状态重定向用户,但是它只是打开一个白色页面,而不是打开主屏幕。

编辑:有人说也许app.js是问题所在,所以我在这里添加了它

代码语言:javascript
复制
import HomeScreen from '../screens/HomeScreen'
import AuthScreen from '../screens/AuthScreen'

// Implementation of HomeScreen, OtherScreen, SignInScreen, AuthLoadingScreen
// goes here.

const AppStack = createStackNavigator({ Home: HomeScreen});
const AuthStack = createStackNavigator({ Home: HomeScreen });

export default createAppContainer(createSwitchNavigator(
  {
    AuthLoading: AuthScreen,
    App: AppStack,
    Auth: AuthStack
  },
  {
    initialRouteName: 'AuthLoading',
  }
));

export default class AuthScreen extends React.Component {

  constructor(props){
      super(props);
  }

  componentDidMount = ()=>{
    firebase.auth().onAuthStateChanged(user => {
      this.props.navigation.navigate(user ? 'App' : 'Auth');

    });
  }

  render() {
    return (
      <ImageBackground
        source={require('../assets/images/AuthScreenBackground.png')}
        style={styles.ImageBackground}/>
    );
  }
}

以下是App.js代码:

代码语言:javascript
复制
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import AppNavigation from './navigation/AppNavigation.js'


import * as firebase from 'firebase'

var config = {

  };
firebase.initializeApp(config);


export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <AppNavigation/>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
});
EN

回答 1

Stack Overflow用户

发布于 2018-12-22 14:02:41

试试下面的代码:

代码语言:javascript
复制
componentWillMount() {
    this.observeLogin = firebase.auth().onAuthStateChanged(user => {
        if (user) {
            this.props.navigation.navigate('App');
        } else {
            this.props.navigation.navigate('Auth');
        }

    });
}

componentWillUnmount() {
    // Don't forget to unsubscribe when the component unmounts
    this.observeLogin ();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53896127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档