在组件内部使用 React 链接图像

Posted

技术标签:

【中文标题】在组件内部使用 React 链接图像【英文标题】:Using React linking images inside of components 【发布时间】: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  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  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  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;

【问题讨论】:

Correct path for img on React.js的可能重复 【参考方案1】:

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

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

然后从 JSX 引用该图像:

<img width=900 height=500  src=image1 />

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

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

所以:

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

可能是:

<img width=900 height=500  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   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

以上是关于在组件内部使用 React 链接图像的主要内容,如果未能解决你的问题,请参考以下文章

React-父组件访问子组件内部

有没有办法单击 div 容器包装的 react-router 链接组件?

有没有办法单击 div 容器包装的 react-router 链接组件?

在页面之间导航时图像组件闪烁 React Native + Expo

如何在开发过程中将本地 React 库与本地 React 项目链接?

在 React 中使用链接组件时如何摆脱样式