Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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 如何从firebase向react组件添加数据_Javascript_Reactjs - Fatal编程技术网

Javascript 如何从firebase向react组件添加数据

Javascript 如何从firebase向react组件添加数据,javascript,reactjs,Javascript,Reactjs,我正试图从后端(firebase)请求一些数据,然后将其置于状态。我认为我的问题是代码在请求完成之前执行。页面加载后,状态不是null,而是空对象 更新:fetchAllPost返回一个承诺。在谷歌上快速搜索了一下承诺,并使之生效 fetchAllPost().then((res) => this.setState({ posts: res, }) ); home.component.jsx export class home extend

我正试图从后端(firebase)请求一些数据,然后将其置于状态。我认为我的问题是代码在请求完成之前执行。页面加载后,状态不是null,而是空对象

更新:fetchAllPost返回一个承诺。在谷歌上快速搜索了一下承诺,并使之生效

fetchAllPost().then((res) =>
      this.setState({
        posts: res,
      })
    );
home.component.jsx

export class home extends Component {
  state = {
    posts: null,
  };
  componentDidMount() {
    const posts = fetchAllPost();
    this.setState({ posts: posts });
    console.log(posts);
  }
  render() {
    return (
    ...
firebase.utils.js

export const fetchAllPost = async () => {
  var postRef = firestore.collection("posts");

  var snapshot = await postRef.get();

  var posts = snapshot.docs.map((doc) => ({
    id: doc.id,
    ...doc.data(),
  }));
  return posts;
};