我正在构建一个Web应用程序,您可以在其中看到体操运动员的列表。当您单击体操运动员的名字时,您会在useParams钩子的帮助下移动到该特定的体操运动员页面。在该页面上,我想在该ID的帮助下从Firestore获取相关文档。不幸的是,我得到了一个可能与Typescript相关的错误。我得到了以下错误:
如何使下面的代码工作?
export const GymnastPage = () => {
const { id } = useParams();
const docRef = doc(db, "GymnastsByCoach", user.uid, "Gymnasts", id)
onSnapshot(docRef, (doc) => {
console.log(doc.data(), doc.id)
});
return()
};
当我硬编码文档的ID而不是从useParams获取ID时,代码可以工作。
1条答案
按热度按时间ycggw6v21#
我很确定
useParams
正在异步地设置状态中的id
。在这种情况下,您必须使用useEffect
来使您的代码在设置id
时做出响应:现在,从Firestore加载的代码将在设置
id
值后运行。