Javascript 记录数据但不呈现p标记,为什么?

Javascript 记录数据但不呈现p标记,为什么?,javascript,reactjs,Javascript,Reactjs,我正在使用firebase firestore并获取数据,一切正常,但当我将其传递给某个组件时,只传递了一项,但日志正确显示了所有元素。 我刚刚开始学习react,非常感谢您的帮助 import React, { useEffect, useState } from 'react' import { auth, provider, db } from './firebase'; import DataCard from './DataCard' function Explore() {

我正在使用firebase firestore并获取数据,一切正常,但当我将其传递给某个组件时,只传递了一项,但日志正确显示了所有元素。 我刚刚开始学习react,非常感谢您的帮助

import React, { useEffect, useState } from 'react'
import { auth, provider, db } from './firebase';
import DataCard from './DataCard'

function Explore() {
    const [equipmentList, setEquipments] = useState([]);

    const fetchData = async () => {
        const res = db.collection('Available');
        const data = await res.get();

        data.docs.forEach(item => {
            setEquipments([...equipmentList, item.data()]);
        })
    }

    useEffect(() => {
        fetchData();
    }, [])

    equipmentList.forEach(item => {
        //console.log(item.description);
    })

    const dataJSX =
        <>
            {
                equipmentList.map(eq => (
                    <div key={eq.uid}>

                        {console.log(eq.equipment)}
                        <p>{eq.equipment}</p>
                    </div>
                ))

            }
        </>

    return (
        <>
            {dataJSX}
        </>
    )
}

export default Explore
import React,{useffect,useState}来自“React”
从“/firebase”导入{auth,provider,db};
从“./DataCard”导入数据卡
函数Explore(){
const[equipmentList,setEquipments]=useState([]);
const fetchData=async()=>{
const res=db.collection(“可用”);
const data=wait res.get();
data.docs.forEach(项目=>{
设置设备([…设备列表,item.data()]);
})
}
useffect(()=>{
fetchData();
}, [])
设备列表。forEach(项目=>{
//控制台日志(项目描述);
})
常数dataJSX=
{
设备列表图(等式=>(
{console.log(eq.device)}
{eq.设备}

)) } 返回( {dataJSX} ) } 导出默认浏览
将获取的数据设置为状态时遇到问题

在准备数据时,您需要调用一次
setEquipments
,因为您总是使用初始数组加上forEach中的一项来擦除数据

设置设备的正确代码为

const fetchData = async () => {
        const res = db.collection('Available');
        const data = await res.get();

        setEquipments(data.docs.map(item => item.data()))
    }

您在将提取的数据设置为状态时遇到问题

在准备数据时,您需要调用一次
setEquipments
,因为您总是使用初始数组加上forEach中的一项来擦除数据

设置设备的正确代码为

const fetchData = async () => {
        const res = db.collection('Available');
        const data = await res.get();

        setEquipments(data.docs.map(item => item.data()))
    }

非常感谢你的工作:)太好了。很高兴帮助你。非常感谢你的帮助:)太好了。很高兴帮助你。