微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Draft.js 的 React 和 Electron:“未定义全局”

如何解决使用 Draft.js 的 React 和 Electron:“未定义全局”

这里提出了一个类似的问题:Uncaught ReferenceError: global is not defined at Object../node_modules/fbjs/lib/setImmediate.js

关于这个问题有两个答案,似乎都相信他们可以解决这个问题。对我来说的问题是——没有给出如何实现答案的解释。

基本上,我有一个包含 React 的电子应用程序,一切正常,直到我尝试将 Draft.js 实施到项目中。我收到以下错误

app.js:19805 Uncaught ReferenceError: global is not defined

日志将我指向 babel/webpack 编译的 app.js 中的一行:

module.exports = global.setImmediate;

导致它的具体事情缩小到一个导入语句:

import {Editor,EditorState} from 'draft-js';

上面链接问题中的一个答案是在窗口上添加一个全局对象:

(window as any).global = window;

我想不通的是……这是什么意思?在我的 main.js 文件中,我在其中创建窗口(它只是整个应用程序的一个窗口)尝试执行此操作,似乎无论我在哪里尝试执行此操作都会引发错误,而且我似乎找不到任何参考完全定义“全局”。我应该在哪里定义“全局”?

解决方法

global 在 tc39 提案中被重命名为 globalThis https://github.com/facebook/fbjs/issues/290

只需将其添加到 index.html 这就是我修复它的方式

<script>
      const global = globalThis;
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。