在组件内部使用 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 编写(其中路径等于返回图像目录 relative 到 html 文件的 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 链接图像的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法单击 div 容器包装的 react-router 链接组件?
有没有办法单击 div 容器包装的 react-router 链接组件?
在页面之间导航时图像组件闪烁 React Native + Expo