【问题标题】:How to render data (realtime/firebase) in React如何在 React 中渲染数据(实时/firebase)
【发布时间】:2021-07-18 21:16:18
【问题描述】:

我有这个使用 Vue 创建的数据库(实时/firebase),现在我想使用 React 检索数据。我可以在控制台中看到数据,但我无法渲染所有项目,只能渲染最后一个。这是我尝试过的:

 const fetchDatabase = () => {
    db.on("value", snapshot => {
      snapshot.forEach(item => {
        let data = item.val();
        console.log(data);
        setSusi(data);
      });
    });
  };

我正在尝试像这样渲染它:

<ul>
        {Object.entries(susi).map(([key, value]) => {
          return (
            <li>
              {key}: {value}
            </li>
          );
        })}
        <hr />
      </ul>
      <button onClick={fetchDatabase}>pegar anamnese</button>

【问题讨论】:

    标签: javascript reactjs firebase firebase-realtime-database


    【解决方案1】:

    这里的问题是你只将last项设置为状态:

    const fetchDatabase = () => {
        db.on("value", snapshot => {
          snapshot.forEach(item => {
            let data = item.val();
            console.log(data);
            setSusi(data);
          });
        });
      };
    

    试试这样的:

    const fetchDatabase = () => {
      const susis = [];
      db.on("value", (snapshot) => {
        snapshot.forEach((item) => {
          let data = item.val();
          console.log(data);
          susis.push(data);
        });
    
        // here we set all of them
        setSusi(susis);
      });
    };
    
    

    【讨论】:

    • 成功了!我按照您的建议进行了少量修改:let data = JSON.stringify(item.val());和
        {susi.map((item, index) => { return
      • {item}
      • ; })}
      因为错误无法渲染对象。谢谢你。现在只剩下格式化数据了。谢谢
    • 听起来不错 :) 如果您可以将答案标记为已接受,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多