You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中React Slick映射图片不显示,用require后页面空白求助

React Slick轮播map遍历图片不显示,使用require后页面空白的解决方法

问题场景

在React项目中使用React Slick轮播组件时,通过map遍历图片数组无法正常显示图片;尝试用require()引入图片后,页面直接变为空白。

原始代码

图片数组代码

export const urlImagenes = [
    {
        alt: 'BUENOS-AIRES-CIUDAD',
        url: "../../assets/images/PARTNERS_0000_BUENOS-AIRES-CIUDAD.jpg"
    },
    {
        alt: 'CABLEVISION',
        url: "../../assets/images/PARTNERS_0002_CABLEVISIÓN.jpg"
    },
    {
        alt: 'PREFECTURA-NAVAL',
        url: "../../assets/images/PARTNERS_0003_PREFECTURA-NAVAL.jpg"
    },
    // ...其他图片项
]

渲染代码

return (
  <div className="partners-container container">
    <h2>Partners</h2>
    <p>
      Multiradio posee acuerdos estratégicos con compañías internacionales
      de primer nivel, garantizando así, el éxito en cada uno de los
      proyectos desarrollados.
    </p>

    <div>
      <Slider {...settings}>
        {
            urlImagenes.map((item, index) => {
                return <div key={index}>
                    <img className="img-fluid" alt={item.alt} src={item.url}></img>
                </div>
            })
        }
      </Slider>
    </div>
  </div>
);

错误修改尝试

修改后的图片数组

export const urlImagenes = [
    {
        alt: 'BUENOS-AIRES-CIUDAD',
        url: "PARTNERS_0000_BUENOS-AIRES-CIUDAD.jpg"
    },
    {
        alt: 'CABLEVISION',
        url: "PARTNERS_0002_CABLEVISIÓN.jpg"
    },
    {
        alt: 'PREFECTURA-NAVAL',
        url: "PARTNERS_0003_PREFECTURA-NAVAL.jpg"
    },
    // ...其他图片项
]

修改后的map遍历代码(含错误)

urlImagenes.map((item, index) => {
    return <div key={index}>
        <img className="img-fluid" alt={item.alt} src={Require('../../assets/images/' + item.url ´'.jpg')}></img>
    </div>
})

问题原因及解决方法

1. 修正require()的拼写与语法错误

你修改后的代码存在两个致命语法错误:

  • Require首字母大写,React中必须用小写的require()
  • 字符串拼接时误用了错误的反引号´,导致代码报错直接让页面崩溃

修正后的map遍历代码:

urlImagenes.map((item, index) => {
    return (
        <div key={index}>
            <img 
                className="img-fluid" 
                alt={item.alt} 
                src={require(`../../assets/images/${item.url}`)} 
            />
        </div>
    )
})

注意:图片数组中的url已经包含.jpg后缀,无需额外拼接,否则会生成xxx.jpg.jpg的错误路径。

2. 提前在数组中引入图片(更稳妥)

可以直接在图片数组里用require()引入资源,避免动态拼接路径的潜在问题:

export const urlImagenes = [
    {
        alt: 'BUENOS-AIRES-CIUDAD',
        url: require("../../assets/images/PARTNERS_0000_BUENOS-AIRES-CIUDAD.jpg")
    },
    {
        alt: 'CABLEVISION',
        url: require("../../assets/images/PARTNERS_0002_CABLEVISIÓN.jpg")
    },
    {
        alt: 'PREFECTURA-NAVAL',
        url: require("../../assets/images/PARTNERS_0003_PREFECTURA-NAVAL.jpg")
    },
    // ...其他图片项
]

渲染时直接使用item.url即可:

urlImagenes.map((item, index) => {
    return (
        <div key={index}>
            <img 
                className="img-fluid" 
                alt={item.alt} 
                src={item.url} 
            />
        </div>
    )
})

3. 检查React Slick配置

页面空白也可能是轮播配置settings不合理导致元素被隐藏,确保配置符合需求,示例:

const settings = {
    dots: true,
    infinite: true,
    speed: 500,
    slidesToShow: 3,
    slidesToScroll: 1,
    responsive: [
        {
            breakpoint: 768,
            settings: {
                slidesToShow: 1
            }
        }
    ]
};

4. 验证图片路径正确性

通过浏览器控制台的网络请求面板,检查图片是否返回404错误,以此确认相对路径是否匹配组件文件与图片的实际位置。

内容的提问来源于stack exchange,提问作者albert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:15:33