我们正面临着这个问题
"参考错误:未定义自我'
尝试使用React-data-grid时。尝试使用webpack构建nodejs应用程序时,问题出在服务器端。我们在生成的捆绑文件中遇到以下行
的问题isOldIE = memoize(function() { return /msie
[6-9]\b/.test(self.navigator.userAgent.toLowerCase()); }),
您能告诉我们如何解决这个问题。看起来反应数据网格包在服务器端渲染方面存在问题。
答案 0 :(得分:7)
self
可能指的是服务器端无法提供的window
...它仅在浏览器上下文中可用。 navigator
引用使这一点特别明显。此代码正在尝试测试Internet Explorer verison的用户代理。
self.navigator.userAgent.toLowerCase()
正如乔丹指出的那样,关于同构渲染存在一个悬而未决的问题#361。
如果可能,请尽量避免在服务器端执行该代码。否则,您必须等待react-data-grid
中的补丁。
答案 1 :(得分:0)
使用以下软件包 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');
}