【发布时间】:2018-06-29 19:13:07
【问题描述】:
Click here for an image of the screenshot
尝试创建一个登录表单,通过 axios 从 firebase 数据库读取信息;收到与 YogaNodes 相关的错误。阅读此内容;我认为 JSX 语法一定有问题。但是 SublimeLinter(我使用的文本编辑器)和我似乎都无法弄清楚出了什么问题。
很确定导入的组件(Card、CardSection、Button、Spinner)没问题,因为这些是我在其他应用程序中使用的可重用组件。
import React, { Component } from 'react';
import { View } from 'react-native';
import axios from 'axios';
import firebase from 'firebase';
import { Header, Button, Spinner, CardSection, AlbumDetail } from './components/common';
import LoginForm from './components/LoginForm';
class App extends Component {
state = { loggedIn: null, albums: [] };
componentWillMount() {
firebase.initializeApp({
apiKey: 'xx',
authDomain: 'xx',
databaseURL: 'xx',
projectId: 'xx',
storageBucket: 'xx',
messagingSenderId: 'xx'
});
axios.get('https://xx')
.then(response => this.setState({ albums: response.data }));
firebase.auth().onAuthStateChanged((user) => {
if (user) {
this.setState({ loggedIn: true });
} else {
this.setState({ loggedIn: false });
}
});
}
renderAlbums() {
return this.state.albums.map(album =>
<AlbumDetail key={album.District} album={album} />);
}
renderContent() {
switch (this.state.loggedIn) {
case true:
return (
<CardSection>
<Button onPress={() => firebase.auth().signOut()}>
Log Out
</Button>
</CardSection>
);
case false:
return <LoginForm />;
default:
return <Spinner size='large' />;
}
}
render() {
return (
<View>
<Header headerText='Authentication' />
console.log(this.state.albums)
{this.renderContent()}
</View>
);
}
}
export default App;
任何帮助将不胜感激。
【问题讨论】:
-
错误说明了什么?请粘贴错误
-
@Ali 我无法直接添加图像。附上一个链接。
-
@KarthigeyanKalyan 是否有 axios 和 firebase 请求超出生命周期方法(例如 componentDidMount)的原因?
-
没有具体原因,@JoshuaLeonard。只是想把所有的进口放在一起;无论如何,认为在应用程序的整个运行时进行导入不会有什么坏处
标签: javascript android react-native