Reactjs Rectjs:为什么img';s src无法传递道具?
我正在将一个道具(包含一个字符串链接)传递到一个组件中。然后,在Reactjs Rectjs:为什么img';s src无法传递道具?,reactjs,Reactjs,我正在将一个道具(包含一个字符串链接)传递到一个组件中。然后,在//的src属性中使用此道具,会导致图像损坏 //导致图像损坏 //很好 ); } } 您需要首先导入图像,然后将其直接用作img元素上的src属性的值,或者将其作为道具传递给其他组件 class Entry extends React.Component { render() { const link = '../../images/company-logo.png'; const i
//的src属性中使用此道具,会导致图像损坏
//导致图像损坏
//很好
);
}
}
您需要首先导入图像,然后将其直接用作img
元素上的src
属性的值,或者将其作为道具传递给其他组件
class Entry extends React.Component {
render() {
const link = '../../images/company-logo.png';
const image = require(link); //error: cannot find module
const imagee = require('../../images/company-logo.png'); //works fine, but not ideal
return (
<div className="entry">
<img src={this.props.imageLink}/> //results in a broken image
<img src={link}/> //results in a broken image
<img src={imagee}/> //works fine
</div>
);
}
}
<img src={myImg}/>
现在可以直接使用myImg
作为src
属性的值
import myImg from '../../images/company-logo.png';
或者把它作为道具传下去
class Entry extends React.Component {
render() {
const link = '../../images/company-logo.png';
const image = require(link); //error: cannot find module
const imagee = require('../../images/company-logo.png'); //works fine, but not ideal
return (
<div className="entry">
<img src={this.props.imageLink}/> //results in a broken image
<img src={link}/> //results in a broken image
<img src={imagee}/> //works fine
</div>
);
}
}
<img src={myImg}/>
实际上,您可以通过道具传递图像src,但有些地方必须导入图像src。您必须这样做,因为React项目主要使用Webpack来构建代码,并且图像也可以使用JS代码构建 我知道有两种方法可以帮助你解决这个问题
从“../images/Image-01.png”导入图像;
函数父组件{
返回;
}
功能组件(道具){
返回;
}
require.context将其用作图像字典:
函数导入高度(r){
返回r.keys().map(r);
}
const images=importAll(require.context('../images',false,/\(png | jpe?g | svg)$/);
功能组件(道具){
const link='image-01.png';//或link=props.parentLink;
返回;
}
您可以在中找到有关选项2的更多信息
希望它能帮助您解决问题。这取决于您提供图像的路径和构建工具。此文件相对于您的图像在哪里?您正在使用create react应用程序还是其他什么?您应该使用与index.html文件相关的图像源路径。我的意思是路径应该描述从index.html到图像文件的路径。@NickMcCurdy是的,我正在使用create-react应用程序。链接是图像相对于文件的位置。我的index.js与“images”目录处于同一级别。index.html位于公共目录中。下面是它的样子:public(index.html)、src(images、components、index.js)我不认为这是错的,试试这个:require('../../images/company logo.png')。default;