Ошибка типа элемента в проекте Firebase-React Native - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в кодировании и делаю собственное приложение с поддержкой firebase. Я хочу знать, что приложение показывает пользователям экран входа в систему, если они еще не вошли в систему, и показывает экран приложения, если они вошли в систему, но когда я пытаюсь запустить приложение, появляется сообщение об ошибке, показанное на изображении ниже. . Что я делаю не так? Спасибо.

/**
 * @format
 */
import React, { Component } from 'react'
import {
    AppRegistry,
    StyleSheet,
    Text,
    View,
    Navigator
} from 'react-native';
import {name as appName} from './app.json';
import App from './component/App'
import * as firebase from 'firebase'
import Login from './component/Login'
//import Firebase from './lib/Firebase'

const firebaseConfig = {
    apiKey: "dhshdsjkfbsdjkvbjksdvbjksd",
    authDomain: "dhshdsjkfbsdjkvbjksdvbjksd",
    databaseURL: "dhshdsjkfbsdjkvbjksdvbjksd",
    projectId: "dhshdsjkfbsdjkvbjksdvbjksd",
    storageBucket: "dhshdsjkfbsdjkvbjksdvbjksd",
    messagingSenderId: "dhshdsjkfbsdjkvbjksdvbjksd",
    appId: "dhshdsjkfbsdjkvbjksdvbjksd",
    measurementId: "dhshdsjkfbsdjkvbjksdvbjksd"
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);

export default class dribbleAppUi1 extends Component {
    constructor(props){
        super(props)
        this.state = {
            initialView : null,
            userLoaded: false
        }
        this.getInitialView()
        this.getInitialView = this.getInitialView.bind(this)
    }

    getInitialView (){
        firebase.auth().onAuthStateChanged((user) => {
            let initialView = user ? 'App' : 'Login'

            this.setState({
                userLoaded: true,
                initialView
            })
        })  
    }

    configureScene(route) {
        if(route.sceneConfig) {
            return route.sceneConfig
        } else {
            return ({
                ...Navigator.sceneConfigs.HorizontalSwipeJumpFromRight,
                gestures: {}
            })
        }
    }

    
    renderScene(route, navigator){
        var globalProps = {navigator}
        switch(route.id){
            case 'App':
                return (
                    <App navigator={navigator} />
                )
                case 'Login':
                    return (
                        <Login navigator={navigator} />
                    )
        }
    }
    render() {
        if(this.state.userLoaded) {

            return (
                <Navigator
                  initialRoute={{
                      id: this.state.initialView
                  }}
                  renderScene={this.renderScene}
                  configureScene={this.configureScene}
                  />
            );

        }else {
            return null
        }
       
    }
}


AppRegistry.registerComponent('Tiismo', () => dribbleAppUi1);

введите описание изображения здесь Я пытаюсь сделать проект с firebase и реагировать на нативные. На данный момент я пытаюсь заставить пользователей перейти на страницу входа, если нет входа в систему, но я получаю сообщение об ошибке на изображении ниже. Что я делаю не так? Спасибо.

1 Ответ

0 голосов
/ 09 июля 2020

Вы не можете просто вернуть null при рендеринге. Попробуйте это.

 if(this.state.userLoaded) {

        return (
            <Navigator
              initialRoute={{
                  id: this.state.initialView
              }}
              renderScene={this.renderScene}
              configureScene={this.configureScene}
              />
        );

    }else {
        return (<Text>Loading</Text>)
    }
...