【发布时间】:2022-11-30 16:32:30
【问题描述】:
我是一个尝试从 firebase 获取对象的反应初学者,我想用从数据库获取的数据初始化 useState,但每次数据呈现未定义的值。这是我截断的代码
const ProductDetails = () => {
const [tab, setTab] = useState("desc");
const [products, setProducts] = useState([]);
const reviewUser = useRef("");
const reviewMsg = useRef("");
const dispatch = useDispatch();
const [rating, setRating] = useState(null);
const { id } = useParams();
const product = products.find(
async (item) => (await item.key.slice(1)) === id
);
const {
image: imgUrl,
title: productName,
amount: price,
description,
shortDesc,
category,
} = product.data;
const fetchProducts = async () => {
const db = getDatabase();
const thumbnailRef = ref(db, "Contents/");
onValue(thumbnailRef, (snapshot) => {
snapshot.forEach((childSnapshot) => {
const childData = childSnapshot.val();
const childKey = childSnapshot.key;
setProducts((prev) => [...prev, { key: childKey, data: childData }]);
});
});
};
useEffect(() => {
fetchProducts();
}, []);
我得到的错误是“无法读取未定义的属性(读取'数据')”。正如我所说,我是一个初学者,可能是我犯了一个业余错误,
【问题讨论】: