reactjs - 从 Firebase 存储中检索图像(使用 React)
问题描述
我正在尝试从我的 Firebase 存储中获取图像,以创建一个投资组合。它们位于不同的目录中(每个国家/地区一个)。目前,我得到了所有的 URL,但我的地图是空的,我不知道如何刷新我的功能组件!
这是一些代码:
//firebase.js
export const getImages = (country) => {
let images = [];
firebase.storage().ref().child('Images/' + country).list().then(result => {
// Loop over each item
result.items.forEach(pics => {
firebase.storage().ref().child(pics.fullPath).getDownloadURL().then((url) => {
console.log(url);
images = [...images, url]
})
});
return images;
})
}
export const getAllImages = () => {
let allImages = [];
allImages = [...allImages, getImages("France")];
return allImages;
}
我的组件:
import {getAllImages} from "../firebase/firebase.js";
function Gallery (props) {
const country = props.country;
const [data, setData] = useState([])
useEffect( () => {
let urls = getAllImages();
console.log(urls);
if (urls) {
setData(urls);
}
},[country])
const imagesRender = () => {
if (data.length >= 1) {
switch (country) {
case 'France':
return (data[0].map((item, id) => (
<img key={id} src={item} alt=""/>
)));
case 'Japan':
return (data[1].map((item, id) => (
<img key={id} src={item} alt=""/>
)));
case 'South Korea':
return (data[2].map((item, id) => (
<img key={id} src={item} alt=""/>
)));
default:
return (data.map((item, id) => (
<img key={id }src={item} alt=""/>
)));
}
}
}
return (
<div className="col-8">
<div>
{imagesRender()}
</div>
</div>
);
}
export default Gallery;
解决方案
推荐阅读
- python - 整数列表中的对元组
- intellij-idea - 如何修复 ESLint 预期的 N 个空格缩进但发现 Y 问题?
- excel - 创建新工作表时自动递增文本框值
- r - 如何创建二进制值以捕获 R 中的空值?
- java - 比较两个泛型 ArrayList - java
- sql - 将具有不同列的多个表合并到一个表中
- r - R:ggplot2 上的错误不允许我绘制图表
- python - PermissionError:[Errno 13] 权限被拒绝:pyinstaller.exe/TKinter
- windows - 编写 .bat 文件以按周期停止和启动服务?
- git - 有没有办法显着减少 .git 文件夹的大小?