database - react native 组件中的长网络操作
问题描述
我正在尝试从组件中的数据库中获取数据并希望在组件上设置数据。我已经尝试过componentDidMount()和componentWillMount()。但加载数据需要一些时间。我是反应原生的新手,没有任何经验,请正确指导我哪里是最好的表演场所
长时间的网络操作。.
componentWillMount() {
this.__fetchDataFromDB();
}
static navigationOptions = {
headerTitle: "Firebase"
};
__fetchDataFromDB = () => {
var usersRef = firebase.database().ref("/Users");
usersRef.on("value", snap => {
const result = [].concat(...Object.values(snap.val()).map(Object.values));
this.setState({
data: result
});
});
};
谢谢
解决方案
你可以这样做
if (this.state.isLoading === true) {
return (
<View style={{ flex: 1, justifyContent: 'center' }}>
<ActivityIndicator size={ Platform.OS=='android'? 90:'large'} color="#DE0400" />
</View>
)
}
当您的数据提取完成时,setState isLoading 为 false。而且最好在componentDidMount()
推荐阅读
- windows - seek_cur 命令将光标设置在文件中的未知位置
- automator - 授权 UNIX 命令控制应用程序
- windows - 什么是二进制 STR_FILE_SYS_BIND_DATA_WIN7_FORMAT PIDL 格式?
- excel - 如何使用自动筛选数据更新列表框?
- firebase - 在页面卸载之前提出请求
- c# - OWIN 外部 Cookie 消失
- ruby-on-rails - 为什么我得到 MongoID::Criteria 的未定义方法页面
- vb.net - 有没有办法保持用户输入数字的长度,以防止删除额外的 0?
- java - Cassandra 在文本列中保存 JSON 数据
- python - 查找字典的平均等级