首页 > 解决方案 > firebase中usestate保存数据的问题

问题描述

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

我碰巧显示

我生成一个状态:

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

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

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) 
    })    
}, [])

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

在此处输入图像描述

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

标签: reactjsfirebasereact-nativeforeachuse-state

解决方案


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

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

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


推荐阅读