首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactJS -如何在窗口上设置属性?

ReactJS -如何在窗口上设置属性?
EN

Stack Overflow用户
提问于 2017-03-01 09:59:46
回答 1查看 1.2K关注 0票数 3

我遇到了一个不熟悉的场景。在我的React项目中,我导入了一个第三方供应商api文件。但是,供应商api使用不包含的Q promise库进行内部调用。该接口期望设置window.Q,并且是该接口的直接依赖项。我似乎不知道如何在window上正确地设置它,这样当我导入源文件顶部的供应商文件并使用它时,它不会抛出这个错误:

TypeError: undefined is not an object (evaluating '$q.defer')

global-variables.js:

注意:我在这个文件中导入了供应商库,因为ds是在文件中创建的一个全局变量,消费者可以使用它进行调用。

代码语言:javascript
复制
import '../../vendor/vendor-library';

const globals = {
    DATA_SERVICE: ds,
};

export default globals;

user.js:

代码语言:javascript
复制
import globals from '../globals/global-variables';

const userApi = {
    getCurrentUser() {
        return globals.DATA_SERVICE.getDataForCurrentObject('User', 'ID');
    },
};

export default userApi;

我试着在我的项目入口点的顶部这样做,但它没有解决问题:

index.js:

代码语言:javascript
复制
import q from 'q';
window.Q = q;

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-02 08:51:10

我建议使用webpack提供的扩展,或者使用您正在使用的任何其他捆绑包来捆绑您的javascript,以将Q作为全局变量提供。

在webpack中,这可以通过webpack.ProvidePlugin来完成

示例:

代码语言:javascript
复制
module.exports = {
    module : {
       ...
    },
    plugins : [
        new webpack.ProvidePlugin({
            Q: "q",
            "window.Q": "q",
        }),
   ],
};

在本例中,"q"Q library from npm的名称,您必须将其作为依赖项添加到项目中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42521888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档