【问题标题】:undefined fetching data from firebase未定义从firebase获取数据
【发布时间】:2021-01-16 16:36:52
【问题描述】:

我在尝试从 Firestore 检索数据时遇到了一个小问题。第一个结果给了我未定义的结果,然后我得到了我的结果。问题是我无法制作 .map,因为它告诉我用户未定义。

const [users, setUsers] = useState()

    useEffect(() =>{

        const db = Firebase.firestore()
        db.collection('users').get()
        .then(querySnapshot => {
            const data = querySnapshot.docs.map(doc => doc.data())
            setUsers({ users: data });
            console.log(users);
        })
    })

    return (
        <div>
            <p>
                USERS
            </p>
            <div>
                {
                    users.map(user => {
                        <p>{user.name}</p>
                    })
                }
            </div>
        </div>
    )

Code result

你知道为什么吗?谢谢!

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    您示例中的用户未定义的。

    要为 useState 挂钩定义默认值,请将其键入到括号中。尝试用下面的示例替换您的第一行:

    const [users, setUsers] = useState({users: []}) //defines the default state of users
    
    //or
    
    const [users, setUsers] = useState( [] )
    

    此外,您似乎在使用usersusers.users 之间切换。选择一种方法并坚持下去。

    以下是我将如何处理此问题的完整示例:

    
    const [users, setUsers] = useState([])
    
    useEffect(() => {
        const db = Firebase.firestore()
        db.collection('users').get()
            .then(querySnapshot => {
                const data = querySnapshot.docs.map(doc => doc.data())
                setUsers(data);
                console.log(users);
            })
    }, [])
    
    return (
        <div>
            <p>
                USERS
            </p>
            <div>
                {users.map(user => <p>{user.name}</p>}
            </div>
        </div>
    )
    

    【讨论】:

    • 您的答案显然可以解决map of undefined 的问题,但它不是完整的答案,为什么会出现这个问题
    • @Shubh 随意发布替代答案。
    • 完美,现在可以正常工作了!谢谢! @蒂姆
    • @ZeDOver 非常欢迎 + 黑客攻击愉快。如果您觉得有帮助,请不要忘记选择答案作为已接受的答案。
    猜你喜欢
    • 1970-01-01
    • 2020-03-26
    • 2016-06-23
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多