【发布时间】:2021-07-11 11:54:48
【问题描述】:
在这里,我试图从 MySQL 数据库中获取 productList,并为每个产品对象分配新属性 - imageURL 通过 getImages()。当我将 productList 记录到控制台时,存在具有正确 url 的属性 imageURL。问题是,当我尝试映射它时,它什么也没显示。为什么?
const storageRef = firebase.storage().ref("/assets")
const [productList, setProductList] = useState([])
useEffect(() => {
Axios.get("http://localhost:3001/product/get").then((response) => {
setProductList(response.data)
})
}, [])
useEffect(() => {
getImages(productList)
}, [productList])
const getImages = (array) => {
array.forEach((item) => {
storageRef.child(`${item.bannerImage}`).getDownloadURL().then((url) => {
item.imageURL = url
})
})
}
我的地图功能:
{productList.map((val) => {
return (
<div key={val.id} className="product">
<div className="item">
<h1>Product title: {val.title}</h1>
<h2>Price: {val.price}</h2>
<h2>Quantity: {val.quantity}</h2>
<h2>IMAGE: {val.imageURL}</h2>
</div>
</div>
)
})}
【问题讨论】:
标签: javascript mysql reactjs firebase-storage use-effect