我正在尝试在 React 返回函数中显示 Firebase 数据库中的用户名。
我有一个名为 getUserName 的函数,它从数据库检索用户名并返回它。
const getUserName = async () => {
try {
const docRef = doc(db, "users/" + auth.currentUser?.uid);
const userDocument = await getDoc(docRef);
const userData = userDocument.data() as UserData;
const userName = userData.name.split(' ')[0];
return userName;
} catch (error) {
console.error(error)
return "Failed to Retrieve UserName";
};
}
然后我尝试在反应组件的返回中显示它。
return (
<div>
Hi, {getUserName()}!
</div>
)
但我收到此错误:
类型“Promise
不确定我在这里做错了什么。我正在使用 TypeScript,所以我需要在某处指定类型吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
错误信息非常清楚。 要解决此问题,您可以修改
getUserName函数以使用useState挂钩来存储用户名并异步更新。import { useState, useEffect } from 'react'; const MyComponent = () => { const [userName, setUserName] = useState(''); useEffect(() => { const getUserName = async () => { try { // some code here setUserName(userName); } catch (error) { console.error(error); setUserName("Failed to Retrieve UserName"); } }; getUserName(); }, []); return ( <div> Hi, {userName}! </div> ); };