1

如何将 ReactDOM 添加为 Meteor 中的全局可访问变量?那么它可以被 Meteor 中的其他 3rd 方库使用吗?

背景信息,Meteor 是一个 Web 应用程序框架,它简化了开发过程并提供了数据库数据同步等附加功能。Golden Layout 是一个 UI 组件,用于创建类似于您在 Visual Studio 中看到的 Dock 布局,例如,它支持使用 React 组件填充视图。Golden-Layout 文档说:

确保包含 jQuery、React 和 ReactDOM 以使其可供 GoldenLayout 访问。

当尝试在 Meteor 中导入它时,我收到以下错误:

Uncaught ReferenceError: ReactDOM is not defined

我查找了一个使用 webpack 的示例并找到了这个配置段:

plugins: [
    ...
    // Necessary b/c golden-layout depends on all 3 of these libs via UMD globals
    new webpack.ProvidePlugin({
        React: 'react',
        ReactDOM: 'react-dom',
        $: 'jquery',
        jQuery: 'jquery'
    }),
    ...
],

但是 Meteor 似乎没有使用 webpack,或者我无法直接修改 webpack。有什么建议么?

4

2 回答 2

2

这可能不是一个好方法,但是我将以下代码放在客户端启动代码中并且它起作用了:

// set the global variables 
global.ReactDOM = require('react-dom')
global.React = require('react')
于 2018-09-25T21:59:05.823 回答
0

如果您使用 typescript 使用 declare 在启动时加载的 typescript 文件中声明一个全局变量

例如声明 var ReactDom;

我不使用反应,但这就是我必须在流星中声明我的全局变量的方式。

于 2018-09-25T21:28:04.207 回答