Firebase onSnapShot不断通话

rv7284

我是React JS的新手。使用Firebase处理ToDo应用程序。

import React, { useState, useEffect } from "react";
import "./App.css";
import ToDoInput from "./ToDoInput";
import db from "./firebase";
import ToDoItem from "./ToDoItem";

function App() {
  const [toDos, setToDos] = useState([{ id: 1, task: "asd", status: false }]);
  useEffect(() => {
    console.log("User effect");
    db.collection("ToDo")
      .orderBy("createdAt")
      .onSnapshot((snapshot) => {
        setToDos(
          snapshot.docs.map((doc) => ({
            id: doc.id,
            task: doc.data().task,
            createdAt: doc.data().createdAt,
            status: doc.data().status,
          }))
        );
      });
  });
  return (
    <div className="app">
      <ToDoInput />
      {toDos.map((toDo) => (
        <ToDoItem
          key={toDo.id}
          task={toDo.task}
          createdAt={toDo.createdAt}
          status={toDo.status}
        />
      ))}
    </div>
  );
}

export default App;

在上面的代码中,onSnapshot功能不断触发相同的数据,并且UI处于持续渲染状态。

关于如何解决这个问题的想法。

沙巴布·卡里姆(Shababb Karim)

您需要在中传递一个空数组参数useEffect这样,仅在组件上第一次调用该函数。您的代码将在组件上以及状态每次更改时运行。由于您正在内部更改状态useEffect,因此您陷入了循环。

做这样的事情:

useEffect(() => {
    console.log("User effect");
    db.collection("ToDo")
      .orderBy("createdAt")
      .onSnapshot((snapshot) => {
        setToDos(
          snapshot.docs.map((doc) => ({
            id: doc.id,
            task: doc.data().task,
            createdAt: doc.data().createdAt,
            status: doc.data().status,
          }))
        );
      });
  }, []); 

在注释上阅读更多关于它的内容

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase / Cloud Firestore:onSnapshot()与on()

来自分类Dev

如何在Firebase onSnapshot中使用.catch

来自分类Dev

firebase onSnapshot在创建完成之前获取更新

来自分类Dev

Firebase onSnapshot仅返回更改的项目

来自分类Dev

如何从其他文件/模块调用onsnapshot firebase结果?

来自分类Dev

firebase.firestore()。onSnapshot发生两次

来自分类Dev

如何使用JavaScript在链中使用Firebase onSnapshot?

来自分类Dev

Firebase:嵌套onSnapshot返回“未定义不是函数”错误

来自分类Dev

Firebase:为什么将 Firestore .onSnapshot 分配给变量?

来自分类Dev

在 Firebase 中不断收到“现有电子邮件”错误

来自分类常见问题

Firebase,React:将GET请求从get()方法更改为onSnapshot()方法

来自分类Dev

React Hooks + Firebase Firestore onSnapshot-正确使用带有React Hooks的Firestore侦听器

来自分类Dev

twilio API:如何在语音通话的两端播放音频文件而不断开通话?

来自分类Dev

如何使用onSnapshot回调获取一个异步的React函数调用firebase.firestore.set等待?

来自分类Dev

Firebase不断在服务器配置中抛出OAuth2客户端ID

来自分类Dev

Firebase Cloud Messaging主题被忽略,所有用户不断收到通知

来自分类Dev

Firebase removeAllObservers()在切换视图时不断打电话-Swift2 iOS

来自分类Dev

使用 FireBase facebook 身份验证登录,getCurrentUser() 不断返回 null

来自分类Dev

为什么我的 Google 地图在 Firebase onDataChange() 方法触发后不断创建新的地图实例?

来自分类Dev

使用 Firebase 获取 downloadURL 不断抛出错误“未定义 XMLHttpRequest”

来自分类Dev

我正在尝试将 firebase 合并到我的统一项目中,但不断收到有关“Firebase.Crashlytics.Editor.dll”的错误消息

来自分类Dev

尝试将图像上传到Firebase存储,但不断出现错误:无法读取未定义的属性“名称”

来自分类Dev

在通话循环内通话

来自分类Dev

Firebase按键

来自分类Dev

Firebase验证

来自分类Dev

Firebase runTransactionBlock

来自分类Dev

Logout with Firebase

来自分类Dev

配置Firebase

来自分类Dev

Firebase按键

Related 相关文章

  1. 1

    Firebase / Cloud Firestore:onSnapshot()与on()

  2. 2

    如何在Firebase onSnapshot中使用.catch

  3. 3

    firebase onSnapshot在创建完成之前获取更新

  4. 4

    Firebase onSnapshot仅返回更改的项目

  5. 5

    如何从其他文件/模块调用onsnapshot firebase结果?

  6. 6

    firebase.firestore()。onSnapshot发生两次

  7. 7

    如何使用JavaScript在链中使用Firebase onSnapshot?

  8. 8

    Firebase:嵌套onSnapshot返回“未定义不是函数”错误

  9. 9

    Firebase:为什么将 Firestore .onSnapshot 分配给变量?

  10. 10

    在 Firebase 中不断收到“现有电子邮件”错误

  11. 11

    Firebase,React:将GET请求从get()方法更改为onSnapshot()方法

  12. 12

    React Hooks + Firebase Firestore onSnapshot-正确使用带有React Hooks的Firestore侦听器

  13. 13

    twilio API:如何在语音通话的两端播放音频文件而不断开通话?

  14. 14

    如何使用onSnapshot回调获取一个异步的React函数调用firebase.firestore.set等待?

  15. 15

    Firebase不断在服务器配置中抛出OAuth2客户端ID

  16. 16

    Firebase Cloud Messaging主题被忽略,所有用户不断收到通知

  17. 17

    Firebase removeAllObservers()在切换视图时不断打电话-Swift2 iOS

  18. 18

    使用 FireBase facebook 身份验证登录,getCurrentUser() 不断返回 null

  19. 19

    为什么我的 Google 地图在 Firebase onDataChange() 方法触发后不断创建新的地图实例?

  20. 20

    使用 Firebase 获取 downloadURL 不断抛出错误“未定义 XMLHttpRequest”

  21. 21

    我正在尝试将 firebase 合并到我的统一项目中,但不断收到有关“Firebase.Crashlytics.Editor.dll”的错误消息

  22. 22

    尝试将图像上传到Firebase存储,但不断出现错误:无法读取未定义的属性“名称”

  23. 23

    在通话循环内通话

  24. 24

    Firebase按键

  25. 25

    Firebase验证

  26. 26

    Firebase runTransactionBlock

  27. 27

    Logout with Firebase

  28. 28

    配置Firebase

  29. 29

    Firebase按键

热门标签

归档