为了账号安全,请及时绑定邮箱和手机立即绑定

无法将来自 firebase 的提取数据显示在 reactjs webapp 中

无法将来自 firebase 的提取数据显示在 reactjs webapp 中

桃花长相依 2022-09-02 21:07:43
import React, { Component } from 'react'import * as ReactBootStrap from 'react-bootstrap'import { Table } from 'react-bootstrap'import firebase from '../fire'import '../App.css'import Foot from './Foot'class Appointment extends Component {  state = {    data: []  }  componentDidMount() {    firebase.database().ref("appoinment").once("value").then(snapShot => {      snapShot.forEach(item => {        this.state.data.push({          id: item.key,          name: item.val().name,          age: item.val().age,          gender: item.val().gender,          Description: item.val().Description,          date: item.val().Appointdate        });      })    })  }  render() {    return (      <div className='cardback'>        <div>          <br></br>          {console.log(this.state)}          <br></br>          <h2 style={{ textAlign: 'center', fontSize: '30px' }}>Today's Appointment</h2>          <br></br>          <br></br>          <Table striped bordered hover variant="dark" style={{ width: "1200px", margin: 'auto' }}>            <thead>              <tr>                <td>id</td>                <td>name</td>                <td>age</td>                <td>gender</td>                <td>Description</td>                <td>date</td>                <td>Status</td>              </tr>            </thead>            <tbody>              **{                this.state.data.map((item) =>                  <tr>                    <td>{item.id}</td>                    <td>{item.name}</td>                    <td>{item.age}</td>                    <td>{item.gender}</td>                    <td>{item.Description}</td>                    <td></td>                  </tr>                )              }**                        </tbody>          </Table>          <br></br>          <br></br>        </div>        <Foot></Foot>      </div>    )  }}export default Appointment;这是上面的代码我想从 firebase 获取数据到 react-js 应用程序。我能够在控制台上获取整个数据,但无法将其迭代为表形式。如下所示。在其中,我从firebase获取数据并将其推送到数组中。所以基本上数据是一个对象数组。但我无法迭代我
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

您正在直接改变状态,这不会导致任何重新渲染。不要做this.state.data.push({id:item.key,


Use this.setState


componentDidMount() {

  firebase

    .database()

    .ref("appoinment")

    .once("value")

    .then((snapShot) => {

      let updatedData = [];

      snapShot.forEach((item) => {

        updatedData.push({

          id: item.key,

          name: item.val().name,

          age: item.val().age,

          gender: item.val().gender,

          Description: item.val().Description,

          date: item.val().Appointdate,

        });

      });

      this.setState({ data: updatedData });

    });

}


查看完整回答
反对 回复 2022-09-02
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号