javascript - React Native 不显示用户详细信息,而是显示白卡
问题描述
我正在尝试通过文章中的 firebase 集成来实现 react native,但未显示用户详细信息。
以下是 UserScreen.js 的代码
// screens/UserScreen.js
import React, { Component } from 'react';
import { StyleSheet, ScrollView, ActivityIndicator, View } from 'react-native';
import { ListItem } from 'react-native-elements'
import firebase from '../database/firebaseDb';
class UserScreen extends Component {
constructor() {
super();
this.firestoreRef = firebase.firestore().collection('users');
this.state = {
isLoading: true,
userArr: []
};
}
componentDidMount() {
this.unsubscribe = this.firestoreRef.onSnapshot(this.getCollection);
}
componentWillUnmount(){
this.unsubscribe();
}
getCollection = (querySnapshot) => {
const userArr = [];
querySnapshot.forEach((res) => {
const { name, email, mobile } = res.data();
userArr.push({
key: res.id,
res,
name,
email,
mobile,
});
});
this.setState({
userArr,
isLoading: false,
});
}
render() {
if(this.state.isLoading){
return(
<View style={styles.preloader}>
<ActivityIndicator size="large" color="#9E9E9E"/>
</View>
)
}
return (
<ScrollView style={styles.container}>
{
this.state.userArr.map((item, i) => {
return (
<ListItem
key={i}
chevron
bottomDivider
title={item.name}
subtitle={item.email}
onPress={() => {
this.props.navigation.navigate('UserDetailScreen', {
userkey: item.key
});
}}/>
);
})
}
</ScrollView>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
paddingBottom: 22
},
preloader: {
left: 0,
right: 0,
top: 0,
bottom: 0,
position: 'absolute',
alignItems: 'center',
justifyContent: 'center'
}
})
export default UserScreen;
您能否更正文章中提到的 UserScreen.js 以便显示用户详细信息而不是空白的白卡?
解决方案
推荐阅读
- movesense - 使用 vagrant 搭建 movesense 开发环境
- dockerfile - 使用 docker 打开 ldap 的自助服务密码
- typescript - 打字稿对象可能是“未定义”
- django - 如何通过简单地在 django 中更改 url 中的 id 来防止登录用户访问其他用户的个人资料?
- ssl - SSL 和 JKS 到 TLS 1.2 客户端
- python - 将数据帧与时间戳和间隔合并
- excel - 如何在数据验证的下拉列表中添加更多约 500 条记录?
- match - 带有 MATCH 和 OFFSET 的 VLOOKUP
- spring-boot - 如何将 elastic-apm-agent.jar 添加到 PCF?
- bash - 仅为 Mac 创建和运行 go build?