如何将ReactDom添加到Meteor中的全局名称空间

时间:2018-09-25 18:25:52

标签: javascript reactjs meteor golden-layout

如何在React Meteor中添加ReactDOM作为全局可访问变量?那么它可以被流星中的其他第三方图书馆使用吗?

背景信息,Meteor是一个Web应用程序框架,可简化开发过程并提供db数据同步等附加功能。Golden Layout是一个UI组件,用于创建Dock之类的布局,类似于您在Visual Studio中看到的布局例如,它支持使用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。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这不是一个好方法,但是我在客户端启动代码中放置了以下代码,并且有效:

// set the global variables 
global.ReactDOM = require('react-dom')
global.React = require('react')

答案 1 :(得分:0)

如果您使用的是打字稿,请使用声明在启动时加载的打字稿文件中声明一个全局变量

例如声明var ReactDom;

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