小马虎本人 2024-04-02 15:51 采纳率: 0%
浏览 9
已结题

使用antd实现轮播图时遇到的src问题

在使用antd实现轮播图的时候发现了这样一个问题:
当我使用map对图片的路径遍历时会报错:Cannot find module '../../../images/penuins1.jpg'
但是当我不使用遍历,重复的写几个<Image src={require( '../../../images/penuins1.jpg')} /> 就是好用的 想知道这是为什么呢?
====================================================================
补充:在我将路径设置绝对路径时,会出现图片不显示的问题

const images = [
    'src/images/penuins1.jpg',
    'src/images/penuins2.jpg',
    'src/images/penuins3.jpg',
    'src/images/penuins4.jpg',
    'src/images/penuins5.jpg',
  ]
  return (
    <div className="home_show">
      <div className="home_show_scroll">
        <Carousel autoplay>
          {images.map((image, index) => (
            <div key={index}>
              <Image className="home_show_contentStyle" src={image} />
            </div>
          ))}
        </Carousel>
      </div>
    </div>
  )

====================================================================

export default function HomePageShow() {
  const images = [
    '../../../images/penuins1.jpg',
    '../../../images/penuins2.jpg',
    '../../../images/penuins3.jpg',
    '../../../images/penuins4.jpg',
    '../../../images/penuins5.jpg',
  ]
  return (
    <div className="home_show">
      <div className="scrollImg">
        <Carousel autoplay>
          {images.map((image, index) => (
            <div key={index}>
              <Image src={require(image)} />
            </div>
          ))}
        </Carousel>
      </div>
    </div>
  )
}

  • 写回答

3条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    在使用antd实现轮播图时遇到的src问题,出现报错"Cannot find module '../../../images/penuins1.jpg'"的原因是require函数在编译时需要确定模块的路径,而路径是在编译时解析的,无法通过变量传递。

    解决这个问题的方法是将图片路径数组中的字符串直接传递给Image组件的src属性,而不是通过require函数解析。

    以下是解决方案:

    1. 修改图片路径数组为绝对路径:
    const images = [
      require('../../../images/penuins1.jpg'),
      require('../../../images/penuins2.jpg'),
      require('../../../images/penuins3.jpg'),
      require('../../../images/penuins4.jpg'),
      require('../../../images/penuins5.jpg'),
    ]
    
    1. 在map函数中直接使用图片路径:
    {images.map((image, index) => (
      <div key={index}>
        <Image src={image} />
      </div>
    ))}
    

    修改后的代码如下:

    export default function HomePageShow() {
      const images = [
        require('../../../images/penuins1.jpg'),
        require('../../../images/penuins2.jpg'),
        require('../../../images/penuins3.jpg'),
        require('../../../images/penuins4.jpg'),
        require('../../../images/penuins5.jpg'),
      ]
    
      return (
        <div className="home_show">
          <div className="scrollImg">
            <Carousel autoplay>
              {images.map((image, index) => (
                <div key={index}>
                  <Image src={image} />
                </div>
              ))}
            </Carousel>
          </div>
        </div>
      )
    }
    

    希望这个解决方案能够帮助到你。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月2日
  • 修改了问题 4月2日
  • 创建了问题 4月2日

悬赏问题

  • ¥15 idea 编辑语言的选择
  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥15 微信小程序 前端页面内容搜索
  • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
  • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
  • ¥30 java spring boot2.5.3版本websocket连不上
  • ¥15 angular js调外部链接查看pdf
  • ¥15 openFOAM DPMFoam
  • ¥15 将查询到的值,赋值到table指定行中