我们正面临着这个问题
“参考错误:自我未定义‘
同时尝试使用反应-数据网格。在使用webpack构建nodejs应用程序时,问题在服务器端。在生成的包文件中,我们面临以下几行中的问题
isOldIE = memoize(function() { return /msie
[6-9]\b/.test(self.navigator.userAgent.toLowerCase()); }),
你能告诉我们怎么解决这个问题吗。看起来,react数据网格包在服务器端呈现方面存在问题。
发布于 2017-10-25 19:38:49
self
很可能是指服务器端不可用的window
.它只能在浏览器上下文中使用。navigator
引用使这一点尤为明显。此代码试图测试版本的用户代理。
self.navigator.userAgent.toLowerCase()
正如约旦所指出的,关于同构绘制有一个悬而未决的问题#361。
如果可能,尽量避免在服务器端执行该代码。否则,您将不得不等待react-data-grid
中的修补程序。
发布于 2017-10-25 20:27:59
通过使用下面的包exenv修正了它,该包仅在客户端呈现期间限制它检查已发布的条件
var ExecutionEnvironment = require('exenv');
if(ExecutionEnvironment.canUseDOM) {
const ReactDataGrid = require('react-data-grid');
const {Toolbar, Filters: {NumericFilter, AutoCompleteFilter, MultiSelectFilter, SingleSelectFilter}, Data: {Selectors}} = require('react-data-grid-addons');
}
https://stackoverflow.com/questions/46940744
复制相似问题