基本上我不能同时运行opencv.js和react.js,因为(我认为)opencv.js太大(7.8mb),无法进行纱线编译(我得到最大的调用栈错误)。鉴于此,我也无法在index.html中加载opencv.js,因为它的加载速度太慢,以至于React无法将其获取,给了我cv is not defined
。
创建一个onLoad =“myfunc()”函数使我最着急,因为我可以将var loaded
设置为true并在ReactDOMrender周围包装if语句。但是当var更改为true且从不渲染时,它永远不会拾取。
我尝试了以下方法:
1)将opencv.js
脚本直接导入到我的index.js
中,我正在对此进行测试。我收到最大调用堆栈错误。我猜这是因为opencv.js约为8mb,编译器不喜欢它吗?
2)我试图在opencv.js
文件中添加public/index.html
。我使用async
加载它,并将/*global cv*/
添加到index.js
文件的顶部。我得到错误cv未定义。
import React from 'react';
/*global cv*/
var mytest = function() {
var test = cv.Mat();
console.log(test + ' if you see something before this, opencv loaded');
}
mytest();
function App() {
return (
<div>hello world</div>
)}
export default App;
并在index.html的中:
<script async src="opencv.js" type="text/javascript"></script>
这将失败,并表示未定义cv。我也使用
onLoad="whenOpenCvLoads()"
尝试过使用此函数将var设置为true,并包装(我相信是)第一个被调用的函数,如下所示:if(openCvIsReady === true){
ReactDOM.render(<App />, document.getElementById('root'));
console.log(openCvIsReady + ' in react');
}
该评估结果为false,并且在变量最终变为true时永远不会运行。
任何想法都将受到欢迎!
最佳答案
关于reactjs - React.js + OpenCV.js ReferenceError:未定义cv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57295637/