Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Firebase map不是一个函数_Javascript_Reactjs_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript React Firebase map不是一个函数

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

我有一个问题,我正在尝试使用Firebase获取一些报告并作出反应

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”链接获得此信息。