【发布时间】:2021-05-11 19:41:47
【问题描述】:
我正在使用此代码从 Cloud Firestore 获取数据
const [profile, setProfile] = useState({});
useEffect(() => {
const fetchDoc = async() => {
const response = await db.collection("users").doc(id).get();
const data = response.data();
setProfile({...data});
}
fetchDoc();
}, []);
这会将对象保存为如下所示的状态
{
name: 'sample name',
tertiary: {
name: ['sample 1', 'sample 2', ...]
},
...
}
第一次加载页面时,console.log(profile) 返回一个空对象。但是,据我所知,useEffect 在安装后触发,并获取数据。之后,console.log(profile) 现在返回获取的对象。
现在,由于某种原因,当我将 profile.tertiary.name 作为 props 传递给组件时,我收到一条错误消息,指出它是 undefined。每次页面第一次挂载时都会发生这种情况,之后 useEffect 不会做任何事情。
<CustomBioList education={profile.tertiary.name} />
在<CustomBioList /> 组件中,我很简单地尝试console.log(props) 检查它是否获取数据。我是否以错误的方式获取数据?我没有掌握 useEffect 的完整概念。
【问题讨论】:
标签: reactjs google-cloud-firestore use-effect