【问题标题】:problem with usestate in firebase to save datafirebase中usestate保存数据的问题
【发布时间】:2020-11-28 12:13:36
【问题描述】:

我有一个我无法解决的问题,尝试一千种方法,一无所获

我碰巧出现

我生成一个状态:

 const [totalComidas, setTotalComidas] = useState({})

之后我做了一个 useEffect 从 firebase 给我带来数据,我想将它保存在 state 中,但它保存为空

useEffect(() => {

    const resultadoComidas = []
    db.collection('menu semanal')
    .get()
    .then((snap) => {
        snap.forEach((doc) => {
           const comida = doc.data()
        //    comida.id = doc.id
           resultadoComidas.push(comida)
           console.log(resultadoComidas[0])
        })
        setTotalComidas(resultadoComidas)
        console.log(totalComidas) 
    })    
}, [])

这些是我在控制台中的结果

enter image description here

控制台中的第一个结果是在将其添加到状态之前,第二个结果是新状态,这对我来说似乎很奇怪,因为它正确地带来了数据,但是当我将它分配给状态时,它分配给我的是空的。

【问题讨论】:

    标签: reactjs firebase react-native foreach use-state


    【解决方案1】:

    当您将totalComidas 记录在useEffect 中时,它为空是正常的,因为您的setTotalComidas 的结果不会显示在那个特定的useEffect 中。如果你想看到你的totalComidas 的变化,你需要另一个useEffect 像这样

    useEffect(() => {
       console.log(totalComidas)
    })
    

    如果您想知道为什么会这样,请阅读this。它解释了useEffect的行为

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2011-08-01
      • 1970-01-01
      • 2018-02-20
      • 1970-01-01
      相关资源
      最近更新 更多