当前位置: 首页 > 面试题库 >

如何在React.js中包含外部JavaScript库

微生翼
2023-03-14
问题内容

我想知道如何在react项目中包含一个外部javascript库。例如,我想导入jspdf库:https
:
//github.com/MrRio/jsPDF/blob/master/jspdf.js并在我的reactjs应用程序中使用它。

到目前为止,我尝试使用如下需求:

let React = require('react');
let { Spacing, Typography } = Styles;
let DoughnutChart = require("react-chartjs").Doughnut;
let Chart = require('react-google-charts').Chart;
let { StylePropable, StyleResizable } = Mixins;
let EditableDiv = require('../EditableDiv.jsx');
//some other library
//the library that matter for me
var pdfConverter = require('../utils/jspdf.source.js');

//then I have my classical react code which works and a function to generate ad pdf
_generatePdf: function(){
    console.log('Genrating pdf');
    var doc = new pdfConverter.jsPDF('p','pt');
    var img = new Image();
}

我有以下错误: TypeError:pdfConverter.jsPDF不是一个函数

为了使其正常工作,我做了一些丑陋的事情,将jspdf-
source.js的源代码复制到我的react.jsx文件中,然后仅调用jsPDF而不是pdfConverter.jsPDF。绝对没有正确的方法,但是无法成功导入和使用该库。

你能告诉我我做错了什么,我该如何纠正?谢谢

-编辑-

当我使用丑陋的解决方案(将源复制到文件中)时,我只需要执行以下操作:

var doc = new jsPDF('p','pt);

它运行良好,希望我的文件很大

从@dannyjolie bellow提出建议的解决方案之后,我直接从npm包中导入了jspdf,但仍然无法使用该库。我尝试了以下代码,导致出现错误:

var pdfConverter = require('jspdf');
var converter = new pdfConverter();
var doc = converter.jsPDF('p', 'pt');

TypeError:pdfConverter不是构造函数 意味着我必须导入来自软件包的jsPDF,而不仅仅是jspdf?

然后我尝试

let pdfConverter = require('jspdf');
var converter = pdfConverter.jsPDF;
var doc = new converter('p', 'pt');

ReferenceError:未定义jsPDF

TypeError:转换器不是构造函数

好的,显然,我导入的不是正确的东西,也不是正确的方式。我做错了什么?


问题答案:

首先,不要使用源文件。只是npm install jspdf --save像任何其他包,并用它进口var pdfConverter = require('jspdf');

其次,您在此行中缺少() var doc = new pdfConverter.jsPDF('p','pt');

做这样的事情:

var converter = new pdfConverter();
var doc = converter.jsPDF('p', 'pt');


 类似资料:
  • 问题内容: 我正在使用LiteIDE for Go。我的Go文件位于此处: 当我使用以下文件添加文件时: 导入“ ../Helper” 我收到此错误: 无法加载软件包:/Users/username/go/src/src/projectA/main.go:4:8:非本地软件包中的本地导入“ ../Helper” 有什么想法我做错了吗? 问题答案: 您通过导入路径导入软件包。对于位于中的packag

  • 问题内容: 我有以下内容: 这是我的目录结构: / build / lib / MagicFolder / Src /build.xml 文件夹包含文件。 路径应为输入参数。 有外部.jar库,应该将其包含在我的版本中。 将编译.class`文件的文件夹 问题:我应该如何改变我的?我应该: 添加外部库 当我运行我的应用程序时,为我的应用程序输入2个输入参数 问题答案: 如果您需要在类路径中添加一个

  • 问题内容: 当我运行“清理并生成”时,仅在文件夹位于文件的同一文件夹时,才会运行正在创建的文件。 因此,如果我将jar文件移动到桌面并将该文件夹保留在该文件夹中,则jar文件将给我一个例外。 我该如何解决这个问题? 问题答案: 如果将jars复制到源代码目录中,它们将位于您的最终jar中。但是,我不确定这是否会在100%的时间内有效。 java-forum上有一篇很棒的文章,内容如下: 除了少数情

  • 我创建了一个spring boot应用程序,它读取一个excel文件,以便在前端显示数据,因此基本上它是持久数据的来源。我能够从eclipse正确地运行,但是当我创建一个spring boot jar并从命令行运行它时,它会失败,因为jar中没有包含文件。 我尝试了两个位置src/main/resources和/src/main/webapp/WEB-INF/external/,但在这两种情况下都

  • 问题内容: 我已经完成了连接数据库(MySQL)的项目。现在,我要将项目导出为jar。但是我不知道如何包括其外部依赖项?在Eclipse中有什么方法可以做到这一点,还是应该为此使用任何脚本? 问题答案: 当你将项目导出为“可运行的jar”(在项目->导出->可运行的jar上单击鼠标右键)时,可以选择将所有依赖项打包到生成的jar中。它还有两种其他方式(请参见屏幕截图)来导出库,请在决定使用哪种打包

  • 我一直在尝试新的android构建系统,但遇到了一个小问题。我已经编译了自己的aar ActionBarSherlock包,我称之为“ActionBarSherlock”。啊。我想做的是用这个aar来构建我的最终APK。如果我使用compile project(“:ActionBarSherlock”)将整个ActionBarSherlock库作为一个android库模块包含到我的主项目中,我就能