微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

询问如何从 firebase 获取反应数据

如何解决询问如何从 firebase 获取反应数据

import React,{ useEffect,useState } from "react";
import { dbService } from "./myFirebase";

function Editor({ userObj }) {
  const [myContent,setMyContent] = useState("");
  const [myContents,setMyContents] = useState([]);
  const getValue = (event) => {
    const { name,value } = event.target;
    setMyContent({ ...myContent,[name]: value });
  };

  useEffect(() => {
    console.log("1",myContents);
    dbService.collection("contents").onSnapshot((snapshot) => {
      const communityArray = snapshot.docs.map((doc) => ({
        id: doc.id,...doc.data(),}));
      setMyContents(communityArray);
      console.log("2",myContents);
    });
    console.log("3",myContents);
  },[]);
  console.log("4",myContents);

  const addContent = async (event) => {
    event.preventDefault();
    await dbService.collection("contents").add({
      content: myContent,createdAt: Date.Now(),});
    setMyContent("");
  };
  return (
    <div>
      <button type="submit" onClick={addContent}>
        {" "}
        input{" "}
      </button>
    </div>
  );
}
export default Editor;

enter image description here

当以这种方式输入数据时,我将其编码为在 Firebase 中保存和接收。

如果我打印日志,它会以空数组的形式出现,然后输入值。 所以当我收到它时,如果我说 console.log("10",myContents[0].id);,它会被正确接收,但是当我刷新它时,TypeError: Cannot read property'id' of undefined appears.

我认为是因为那个空数组,我该如何解决? 您是否使用 async await for useEffect?我试过了,还是一样,是不是错了?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。