我正在嘗試將獲取的資料保存到變數中,但我總是得到“太多的重新渲染”或“未定義”。我做錯了什么
import {
child,
get,
getDatabase,
ref,
} from "firebase/database";
const db = getDatabase();
function App() {
const [data, setData] = useState();
const getData = ref(db);
useEffect(() => {
const fetch = () => {
get(child(getData, "tokens/")).then((snapshot) => {
const fetched = snapshot.val();
setData(fetched);
});
setTimeout(() => {
console.log(data);
}, 500);
};
fetch();
}, []);
}
uj5u.com熱心網友回復:
沒有必要setTimeout()。當 promise 被解決時,您可以列印資料,如下所示:
function App() {
const [data, setData] = useState();
const getData = ref(db);
useEffect(() => {
const fetchData = () => {
get(child(getData, "tokens/")).then((snapshot) => {
const fetched = snapshot.val();
console.log(fetched)
setData(fetched);
});
};
fetchData();
}, []);
}
我還重命名了 fetch 函式以避免與Fetch API混淆
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/453336.html
標籤:javascript 反应 火力基地 网络 firebase-实时数据库
