【问题标题】:Using React linking images inside of components在组件内部使用 React 链接图像
【发布时间】:2017-10-20 19:36:52
【问题描述】:

我正在学习反应。我的 src 文件夹中的 components 文件夹中有一个文件 website_index.js。在我的 src 文件夹中还有一个 images 文件夹。我正在尝试将轮播中的图片链接到图像文件夹中的图片,但无论我输入什么路径,它都找不到它们。是不是无法显示这些图片?

谁能告诉我正确的方法。

import React, { Component } from 'react';
import { Jumbotron, Carousel } from 'react-bootstrap';

class Home extends Component {

  render() {
    return (
      <Jumbotron>
      <Carousel>
        <Carousel.Item>
          <img width={900} height={500} alt="900x500" src="./images/Ian_FMD_400.jpg"/>
          <Carousel.Caption>
            <h3>First slide label</h3>
            <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
          </Carousel.Caption>
        </Carousel.Item>
        <Carousel.Item>
          <img width={900} height={500} alt="900x500" src="../images/Ian_FMD_400.jpg"/>
          <Carousel.Caption>
            <h3>Second slide label</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
          </Carousel.Caption>
        </Carousel.Item>
        <Carousel.Item>
          <img width={900} height={500} alt="900x500" src="./src/images/Ian_FMD_400.jpg"/>
          <Carousel.Caption>
            <h3>Third slide label</h3>
            <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
          </Carousel.Caption>
        </Carousel.Item>
      </Carousel>
      </Jumbotron>
    );
  }
}

export default Home;

【问题讨论】:

标签: javascript reactjs jsx


【解决方案1】:

一种快速而干净的方法是像导入模块或require() 模块一样导入图像:

import image1 from './path/to/image';

然后从 JSX 引用该图像:

<img width={900} height={500} alt="" src={image1} />

图像的路径可能会为您自动解析,具体取决于您的捆绑程序(webpack 等)的设置方式。

另一方面,如果您导入图像的方式与导入模块的方式不同(并且您直接从 JSX 或组件内联引用图像路径),则不需要在图像前面加上 @ 987654325@ 和 ./(因为它不是导入,它只是一个常规的相对路径),所以只需编写 inline src 调用以指向图像就像你会用 HTML 编写(其中路径等于返回图像目录 relative 到 HTML 文件的 relative 路径):

所以:

<img width={900} height={500} alt="" src="./src/images/Ian_FMD_400.jpg" />

可能是:

<img width={900} height={500} alt="" src="images/Ian_FMD_400.jpg" />

所以回顾一下,两种不同的导入图像的方式:

// option one (imports)
import image1 from './path/to/image/relative/to/COMPONENT';
<img src={image1} />

// option two (relative paths inline)
<img src="path/to/image/relative/to/HTML" />

您也可以通过阅读获得一些线索:Correct path for img on React.js

【讨论】:

    【解决方案2】:

    嗯,你说:

    “...我的 src 文件夹中的 components 文件夹中有一个文件 website_index.js。”

    你也说过:

    “...在我的 src 文件夹中还有一个 images 文件夹。”

    所以,你的项目结构是这样的:


    |_ 组件
    |_ 图片

    试试这个:

    <img width={900} height={500} alt="900x500"  src={require('../images/Ian_FMD_400.jpg')}/>
    

    【讨论】:

    • 你是否在使用诸如“webpack”或“gulp”之类的任务运行器?
    • 好的,通常当我们在开发一些应用程序时,使用 React、Angular 或其他框架,我们会使用一些任务运行器,例如“webpack”和“gulp”。然后,这个任务运行器会为我们负责如何构建我们的产品(或公共文件夹)。欲了解更多信息,请访问webpack.github.io/docs 如果您想在现实世界中看到这一点,您可以查看这个项目,使用 React 和 Webpack 构建“生产”版本。 github.com/darde/RD-Book-Store
    猜你喜欢
    • 2022-07-20
    • 2023-04-09
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 2013-02-20
    • 2016-11-13
    相关资源
    最近更新 更多