如何使用id React Js和Firebase显示数据

时间:2019-12-20 17:46:53

标签: javascript reactjs firebase

我正在一个项目上,我想显示我的Firebase数据库中的一些数据,

我可以显示其中的一些,但是我想在框上显示“ listClients”的其余数据,该框链接到带有ID的复选框。

listClients.js,这是我映射数据库中数据的地方

import React, { Component } from "react";
import * as firebase from "firebase";
import { Table, InputGroup } from "react-bootstrap";
class ListClients extends React.Component {
  state = {
    loading: true
  };

  componentWillMount() {
    const ref = firebase.database().ref("listClients");
    ref.on("value", snapshot => {
      this.setState({ listClients: snapshot.val(), loading: false });
    });
  }

  render() {
    if (this.state.loading) {
      return <h1>Chargement...</h1>;
    }

    const clients = this.state.listClients.map((client, i) => (
      <tr key={i}>
        <td>
          <input id={client.id} type="checkbox" onChange={this.cbChange} />
        </td>
        <td>{client.nom}</td>
        <td>{client.prenom}</td>
      </tr>
    ));
    const clientsAdresses = this.state.listClients.map((clientAdresse, i) => (
      <tr key={i}>
        <td id={clientAdresse.id}>{clientAdresse.adresse}</td>
      </tr>
    ));

    return (
      <>
        <Table className="ContentDesign" striped bordered hover>
          <thead>
            <tr>
              <th></th>

              <th>First Name</th>
              <th>Last Name</th>
            </tr>
          </thead>
          <tbody>{clients}</tbody>
        </Table>

        <Table className="ContentDesign" striped bordered hover>
          <thead>
            <tr>
              <th>Adresse : </th>
            </tr>
          </thead>


          <tbody>{clientsAdresses}</tbody>


        </Table>
      </>
    );
  }
}

export default ListClients;


我的数据:enter image description here

我只希望选中复选框的ID的“地址” enter image description here

谢谢

错误: enter image description here

1 个答案:

答案 0 :(得分:1)

要从数据库中检索地址,请使用以下代码:

componentWillMount() {
const ref = firebase.database().ref("listClients");
    ref.on("value", snapshot => {
       snapshot.forEach((subSnap) => {
      let address = subSnap.val().adresse;
      });
    });
  }

首先使用listClients添加对节点forEach的引用,您可以迭代并检索adresse


如果要根据ID获取adresse,则可以使用查询:

const ref = firebase.database().ref("listClients").orderByChild("id").equalTo(0);