Javascript 在react本机应用程序中从firebase检索数据

Javascript 在react本机应用程序中从firebase检索数据,javascript,firebase,react-native,firebase-realtime-database,react-native-android,Javascript,Firebase,React Native,Firebase Realtime Database,React Native Android,我是个新来的本地人。我想在应用程序屏幕上显示从firebase数据库获取的文本作为文本。 我已经尝试在控制台和警报上打印,它正在成功显示,但没有显示在应用程序屏幕上 import React,{Component}来自'React'; 从“react native”导入{View,Text,}; 从“firebase”导入*作为firebase; 导出默认类ListItem扩展组件{ 状态={ 项目:[] } 组件willmount(){ var firebaseConfig={ apiKey:

我是个新来的本地人。我想在应用程序屏幕上显示从firebase数据库获取的文本作为文本。 我已经尝试在控制台和警报上打印,它正在成功显示,但没有显示在应用程序屏幕上

import React,{Component}来自'React';
从“react native”导入{View,Text,};
从“firebase”导入*作为firebase;
导出默认类ListItem扩展组件{
状态={
项目:[]
}
组件willmount(){
var firebaseConfig={
apiKey:“***”,
authDomain:“***”,
数据库URL:“***”,
projectId:“***”,
storageBucket:“***”,
messagingSenderId:“***”,
appId:“***”,
度量标准:“***”
};
firebase.initializeApp(firebaseConfig);
var ref=firebase.database().ref('/14/info');
参考“值”,功能(快照){
const userItem=snapshot.val();
让items=Object.values(userItem);
});
}
render(){
返回(
{this.state.items}
)
}
}

数据是从Firebase(以及几乎所有现代web API)异步加载的,因为获得结果可能需要一些时间。这意味着当你的应用程序被渲染时,数据还不可用。因此,您需要告诉React在数据可用时重新渲染,这可以通过调用
setState()
实现

或者,您可以使用胖箭头表示法,使其更简单:

ref.on("value", (snapshot) => {
    const userItem = snapshot.val();
    let items = Object.values(userItem);
    this.setState({ items: items });
});

强烈建议在继续之前阅读如何管理,因为这种行为对于高效构建React应用程序非常关键。

看起来您没有正确发布代码。请检查并正确上传您的代码。三件事:当您可以只拍摄屏幕截图时,请不要用相机拍摄屏幕;当您可以只将代码粘贴为文本时,请不要将代码张贴在链接后面。这同样适用于数据和控制台输出以及其他类似于代码的内容。这是我的代码,它与警报和控制台一起工作,但不在渲染中
let self = this;
ref.on("value", function(snapshot) {
    const userItem = snapshot.val();
    let items = Object.values(userItem);
    self.setState({ items: items });
});
ref.on("value", (snapshot) => {
    const userItem = snapshot.val();
    let items = Object.values(userItem);
    this.setState({ items: items });
});