热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在前端读取包含大量图像的文件夹

我是React的新手,我的产品在公用文件夹中包含多个图像。文件夹名称是产品名称。

我是React的新手,我的产品在公用文件夹中包含多个图像。文件夹名称是产品名称。

public
--product_1
--product_2
...
--product_n

在每个文件夹内有许多图像,不一定是相等的图像,文件名分别为1.jpg2.jpg,依此类推(实际上,图像的文件名只是一个数字序列)。

因此,实际上,我有这个自定义ProductCarousel组件(一些现有库中对Carousel组件的包装),我想在其中将每个文件夹的名称作为属性传递给App(或任何父组件)并且该组件将简单地遍历将在轮播中显示的图像。

class ProductCarousel extends Component {
constructor(props) {
super(props);
this.state = {
productFolder: this.props.productFolder
}
}
render() {
return (

{ /* I'm doing a pseudo-code here somewhat,just correct me */ }
{this.imagesInProductFolder.map(image =>


{`${this.state.productFolder}

)
}

);
}
}

我的问题:


  1. 这可以用普通的Javascript完成吗?


  2. 如果使用纯Javascript太困难(或不可能)或代码太多,是否有一个React库可以使用以更简单的方式解析?


  3. 如果以上答案是否定的,是否有必要使用像NodeJS这样的服务器端语言(我的最后选择,我想将服务器端和客户端混合在一起是“不好的做法”)? / p>


这三个示例中的任何一个示例代码都将受到赞赏。


是的,可以做到。
添加componentdidmounttryRequire函数将解决此问题。

componentdidmount中,我们将在每个文件夹中进行迭代并导入图像,并将其保存在状态中。
tryRequire函数检查该文件夹中是否存在特定图像。如果结果为假,它将中断componentdidmount

中的迭代

componentDidMount() {
let i = 1;
const pathName = this.props.fileName;
while (this.tryRequire(`./images/${pathName}/${i}.jpg`)) {
import(`./images/${pathName}/${i}.jpg`).then(image => {
this.setState({ images: [...this.state.images,image.default] });
});
i = i + 1;
}
}
tryRequire(path) {
try {
return require(`${path}`);
} catch (err) {
return null;
}
}

更新

实际上,如果将图像与组件保存在同一文件夹或子文件夹中,则此方法将起作用。


推荐阅读
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 详解react组件通讯方式(多种)
    这篇文章主要介绍了详解react组件通讯方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
author-avatar
刘华兰2011_423
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有