require(变量)导致错误找不到模块“。”

时间:2018-07-16 22:05:01

标签: node.js reactjs require

我正在使用React和Node.js,并且尝试使用src属性存储为道具来渲染图像。但是,每当我尝试向require()输入作为变量存储的路径时,都会给出此错误:找不到模块“。”

所以我想知道为什么require无法处理指向路径但可以处理路径本身的变量?例如,这将导致上述错误:

<MyComponent imageSrc='./image.jpg'/>
...
<img src={require(this.props.imageSrc)}/>

但这将完美地起作用:

<img src={require('./image.jpg')}/>

1 个答案:

答案 0 :(得分:2)

正如评论中所述,实际上,您不需要在此处提供任何图像。您可以在src目录中使用相对路径。但是,对于您的情况,这将起作用:

在将道具传递到组件时使用require:

<MyComponent imageSrc={require("./image.jpg")} />

并在此处使用该道具:

<img src={this.props.imageSrc} />

我最近学到的另一种解决方案:

<img src={require( "" + this.props.imageSrc) } />