小编典典

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

reactjs

我想知道如何在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:转换器不是构造函数

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


阅读 351

收藏
2020-07-22

共1个答案

小编典典

首先,不要使用源文件。只是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');
2020-07-22