Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用require React导入动态文件_Javascript_Reactjs - Fatal编程技术网

Javascript 使用require React导入动态文件

Javascript 使用require React导入动态文件,javascript,reactjs,Javascript,Reactjs,您好,我正在导入一个带有require的动态文件,但是我的文件在/src之外,所以我检查了一篇帖子,上面说如果我在/node\u modules/react scripts/config/webpack config.js中注释两行内容 我可以访问/src之外的文件,问题是如果我这样做,效果会很好: <a href={require('../../../../../files/asd.pdf')} target="_blank" rel="noopener noreferrer" c

您好,我正在导入一个带有require的动态文件,但是我的文件在
/src
之外,所以我检查了一篇帖子,上面说如果我在
/node\u modules/react scripts/config/webpack config.js中注释两行内容

我可以访问
/src
之外的文件,问题是如果我这样做,效果会很好:

   <a href={require('../../../../../files/asd.pdf')} target="_blank" rel="noopener noreferrer" className="dropdown-item text-center">Show PDF</a>
其中我的代码是
this
this.state.fullPath
与以前相同

  <a href={require(this.state.fullPath)} target="_blank" rel="noopener noreferrer" className="dropdown-item text-center">Show PDF</a>


我尝试连接一个空字符串,但仍然无法工作

这是一个与您正在使用的模块绑定器相关的问题。为了使其正常工作,
require
函数必须获得绑定器在构建时而不是运行时导入模块所使用的路径。您需要使用
require
使用完整路径,而不是变量

您可以尝试以下方法:

const one=require('./path/to/one.pdf');
consttwo=require('./path/to/two.pdf');
常量href=变量===1?一:二,;

这是一个与您正在使用的模块绑定器相关的问题。为了使其正常工作,
require
函数必须获得绑定器在构建时而不是运行时导入模块所使用的路径。您需要使用
require
使用完整路径,而不是变量

您可以尝试以下方法:

const one=require('./path/to/one.pdf');
consttwo=require('./path/to/two.pdf');
常量href=变量===1?一:二,;


问题是,我通过道具接收完整路径,因此每个组件都有不同的打开路径,这就是我想要动态的原因,第二个解决方案是导入,返回此错误
错误:无法解析表达式类型为导入的道具值。请提交问题以立即修复此问题。在Array.forEach()的Array.map()处
再次查看后,动态导入将无法工作,因为它是一个可下载的文件。你不能将整个
require('../path/to/file.pdf')
作为道具传递给组件而不仅仅是路径吗?编译时应用程序卡住了如果我通过require by道具传递require,则只有在
/src
中包含文件时require才起作用,因为我这样做了:`../../img/Icon/${this.props.archivo.img}
)}width=“128”alt=“…”height=“126”/>`但是我需要在/src之外导入,因为这就是我的应用程序的内容,我不确定我是否理解。您将需要导入没有变量路径名的文件,我认为如果不这样做,它将无法工作。因为当你的应用程序是用webpack构建时,它将使用该路径并导入正确的文件。它将无法理解变量,因为它是根据运行时设置的。在使用文件之前,您可以尝试导入文件顶部的文件,无需任何要求,例如:
从“/path/to/file.pdf”导入文件,然后使用它
或将其作为道具传递。问题是我通过道具接收完整路径,因此每个组件都有不同的打开路径,这就是我想要动态的原因,第二个解决方案import one返回此错误
错误:无法解析表达式类型为import的prop值。请提交问题以立即修复此问题。在Array.forEach()的Array.map()处
再次查看后,动态导入将无法工作,因为它是一个可下载的文件。你不能将整个
require('../path/to/file.pdf')
作为道具传递给组件而不仅仅是路径吗?编译时应用程序卡住了如果我通过require by道具传递require,则只有在
/src
中包含文件时require才起作用,因为我这样做了:`../../img/Icon/${this.props.archivo.img}
)}width=“128”alt=“…”height=“126”/>`但是我需要在/src之外导入,因为这就是我的应用程序的内容,我不确定我是否理解。您将需要导入没有变量路径名的文件,我认为如果不这样做,它将无法工作。因为当你的应用程序是用webpack构建时,它将使用该路径并导入正确的文件。它将无法理解变量,因为它是根据运行时设置的。在使用该文件之前,您可以尝试在文件顶部导入该文件,而无需执行以下操作:
从“/path/to/file.pdf”导入文件,然后使用该文件
或将其作为道具传递。
  <a href={require(this.state.fullPath)} target="_blank" rel="noopener noreferrer" className="dropdown-item text-center">Show PDF</a>