require(variable) 导致错误 Cannot find module "."

require(variable) causes the error Cannot find module "."

我正在使用 React 和 Node.js 并且我正在尝试使用存储为 prop 的 src 属性渲染图像。但是每当我尝试向 require() 提供一个存储为变量的路径时,它都会给我 这个错误:找不到模块“。”

所以我想知道为什么 require 不能处理指向路径但可以处理路径本身的变量?比如这样会导致上面提到的错误:

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

但这将完美地工作:

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

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

将 prop 传递给组件时使用 require:

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

然后像这样使用这个道具:

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

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

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