如何解决React项目中的“ TypeError:无法读取未定义的属性'inherits'?”"/>
如何解决React项目中的“ TypeError:无法读取未定义的属性'inherits'?”
我从事React项目。我正在尝试使用npm软件包async-polling
(),该软件包要使用inherits
的node-utils
类;库内部有以下几行:
var inherits = hasWindow ? window.nodeUtil.inherits : require('util').inherits;
var EventEmitter = hasWindow ? window.nodeEventEmitter : require('events').EventEmitter;
当然,因为应用程序正在浏览器中运行,所以hasWindow
为true。但是没有nodeUtil
或nodeEventEmitter
。因此我得到了错误:
TypeError: Cannot read property 'inherits' of undefined
然后我尝试添加util
和events
软件包并执行此操作:
window.nodeUtil = require('util');
window.nodeEventEmitter = require('events');
但是我遇到了这个错误:
TypeError: AsyncPolling is not a constructor
花药叉能够解决此问题,但我想尝试使用原始包装,是否有办法解决此问题?
回答如下:尽我所能告诉async-polling
是一个旧的,未维护的模块,您最好避免使用。您遇到了问题,因为模块期望存在两个全局变量nodeUtil
和nodeEventEmitter
。该软件包看起来更适合于节点环境,并且依赖于浏览器中的polyfills。
我建议您找到一个最新的软件包,或者简单地使用setInterval
进行轮询。
const intervalInMilliseconds = 5000;
const timerId = setInterval(() => {
if (/* some condition is met */) {
clearInterval(timerId);
} else {
// do stuff
}
}, intervalInMilliseconds);
更多推荐
如何解决React项目中的“ TypeError:无法读取未定义的属性'inherits'?”
发布评论