Node.js require(变量)导致错误无法找到模块&引用;

Node.js require(变量)导致错误无法找到模块&引用;,node.js,reactjs,require,Node.js,Reactjs,Require,我正在使用React和Node.js,并尝试使用存储为道具的src属性渲染图像。但是,每当我尝试将require()存储为变量的路径馈送给我时,它会给我这个错误::找不到模块“ 所以我想知道为什么require不能处理指向路径的变量,但可以处理路径本身?例如,这将导致上述错误: <MyComponent imageSrc='./image.jpg'/> ... <img src={require(this.props.imageSrc)}/> ... 但这将非常有效

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

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

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

...
但这将非常有效:

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

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

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

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

在那里使用这个道具,比如:

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


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

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


console.log(this.props.imageSrc)的输出是什么??Require希望该文件是带有module.exports的节点文件。图像没有这个功能,因为它是一个JPG文件。但是,如果图像在您的公共目录中,您不需要为了显示它而需要该图像。为什么不这样使用它:
,然后
,正如@RyanZ所解释的,实际上您不需要在这里需要该图像。@devserkan,谢谢。成功了,不客气。然后我会把这个评论转换成一个答案,这就是你想要的答案。你能解释一下为什么添加一个空字符串可以解决这个问题吗<代码>要求(src)为我导致此错误<代码>要求(“+src)有效。这对我来说毫无意义。@DaveStein,我知道这很奇怪:)它用一个空字符串连接变量,然后返回一个字符串。这就是require所期望的:一个字符串。