Javascript React Firebase map不是一个函数
我有一个问题,我正在尝试使用Firebase获取一些报告并作出反应Javascript React Firebase map不是一个函数,javascript,reactjs,firebase,firebase-realtime-database,Javascript,Reactjs,Firebase,Firebase Realtime Database,我有一个问题,我正在尝试使用Firebase获取一些报告并作出反应 class Reports extends Component { state = { reports: [] } componentDidMount(){ const myUserId = fire.auth().currentUser.uid; console.log(myUserId); let reports = fire.database().ref('clients/' + myUserId + '/R
class Reports extends Component {
state = {
reports: []
}
componentDidMount(){
const myUserId = fire.auth().currentUser.uid;
console.log(myUserId);
let reports = fire.database().ref('clients/' + myUserId + '/Reports/');
reports.on('value', function(snapshot){
let reportsSnapshot = snapshot.val();
this.setState({ reports: reportsSnapshot });
console.log(this.state.reports);
}.bind(this));
}
render(){
const reports = this.state.reports.map(report => {
return <Report content={report.content} />
});
return (
<div>
{reports}
</div>
);
类报告扩展组件{
状态={
报告:[]
}
componentDidMount(){
const myUserId=fire.auth().currentUser.uid;
log(myUserId);
让reports=fire.database().ref('clients/'+myUserId+'/reports/');
关于('value',函数的报告(快照){
让reportsSnapshot=snapshot.val();
this.setState({reports:reportsSnapshot});
log(this.state.reports);
}.约束(这个);
}
render(){
const reports=this.state.reports.map(report=>{
返回
});
返回(
{报告}
);
当我试图编译时,会出现以下情况:
TypeError:this.state.reports.map不是函数
如何正确地获取它和映射?正确地设置状态是否有问题
提前感谢您的帮助。该错误通常意味着您在调用非数组的对象时调用了
.map()
。我不知道firebase,但snapshot.val()
可能不是数组,而是对象或其他对象。此外,您还试图在调用setState()后直接记录状态
。这将无法正常工作,因为setState()
是异步的,因此状态更改不会反映您是否登录下一行。Jayce已确定最可能的原因。如果您在将其转换为代码时遇到问题,请编辑您的问题,在客户端/'+myUserId+'/Reports/
(作为文本,请不要截图)。您可以通过单击您的页面中的“导出JSON”链接获得此信息。