【问题标题】:How to fix (unreachable code ts.7027) react native如何修复(无法访问的代码 ts.7027)本机反应
【发布时间】:2019-11-22 16:13:45
【问题描述】:

我是 React Native 的新手,还在学习。一切正常,但突然我在模拟器和代码编辑器中出现错误,花了两天时间试图找到解决方案,但什么也没找到

我收到两个错误 1) 在代码编辑器中(无法访问代码 ts.7027 2)在模拟器中(开发服务器返回响应错误码:500)

我尝试了很多改变和修改代码可能是一些语法错误甚至拼写但我不能 这是针对新的 react-native 项目 创建登录页面表单的这个

import React, { Component } from 'react';
import {View} from 'react-native';
import firebase from 'firebase';
import {Header, Button, Spinner} from './Components/Common';
import LoginForm from './Components/LoginForm';



class App extends Component {
  state = { loggedIn: null };

  componentWillMount () {
    firebase.initializeApp(
      {
    apiKey: "AIzaSyAX09VgJkSzx3d5z8UcyznmhTUNLUgYzMw",
    authDomain: "hatimauth.firebaseapp.com",
    databaseURL: "https://hatimauth.firebaseio.com",
    projectId: "hatimauth",
    storageBucket: "",
    messagingSenderId: "62394723382",
    appId: "1:62394723382:web:bd5e4bb7a365a05b"
  });

  firebase.auth().onAuthStateChanged((user) => {
    if (user) {
      this.setState({loggedIn: true});
    }else {
      this.setState({loggedIn: false });
    }
  });


renderContent () {
 switch (this.state.loggedIn) {
   case true:
     return (
     <Button onPress{()=> firebase.auth().signOut()}> Log Out
      </Button>
     );
   case false:
     return <LoginForm/>;
   default:
    return <Spinner size='large'/>;
    }
}

render () {
  return (
    <View>
      <Header headerText='Authentication'/>
      {this.renderContent}
    </View>
  )
};

export default App; 

预计会正常运行,尤其是通过课程视频正常运行 课程是udemy react-native 和 redux 完整课程

【问题讨论】:

  • 您缺少 componentWillMountclass 的右括号。

标签: android reactjs react-native jsx


【解决方案1】:

您缺少 componentWillMount 上的右括号。我建议下载一个 linter,比如更适合你的 IDE 的东西。

componentWillMount () {
    firebase.initializeApp(
      {
    apiKey: "AIzaSyAX09VgJkSzx3d5z8UcyznmhTUNLUgYzMw",
    authDomain: "hatimauth.firebaseapp.com",
    databaseURL: "https://hatimauth.firebaseio.com",
    projectId: "hatimauth",
    storageBucket: "",
    messagingSenderId: "62394723382",
    appId: "1:62394723382:web:bd5e4bb7a365a05b"
  });

  firebase.auth().onAuthStateChanged((user) => {
    if (user) {
      this.setState({loggedIn: true});
    }else {
      this.setState({loggedIn: false });
    }
  });
}

此外,我建议学习如何使用 .env 文件并将它们放在 git ignore 中,这样您就不会与世界共享您的 API 密钥(共享一个好的包以供查看):

https://github.com/luggit/react-native-config

【讨论】:

  • 另外,需要注意的另一件事是 ComponentWillMount 现在已弃用。我会考虑使用ComponentDidUpdate
猜你喜欢
  • 2020-07-18
  • 2013-12-23
  • 2017-12-08
  • 2022-07-31
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2019-10-02
相关资源
最近更新 更多