电子全局变量在React页面上的路由/ URL更改之间不会持续存在

时间:2017-05-29 13:04:34

标签: javascript reactjs electron

我目前正在开发一个包含客户网站(用React编写)的Electron应用程序。

我使用预加载脚本,并且我定义了一个全局变量,如下所示:

process.once('loaded', () => {
    global.foo = () => {
        console.log("foo");
    };
});

在客户端代码中,从多个位置调用以下代码:

import { doFoo } from 'foobar';

在foobar.js中,我有以下代码:

export function doFoo() {
    foo();
}

当我从登录页面导入并调用doFoo时,一切正常。 当React更改路由/ URL时,我得到未捕获的ReferenceError:foo未定义

如何确保全局变量真正全局并且在路由更改之间保持不变?

1 个答案:

答案 0 :(得分:0)

我找到了答案。这是因为其中一个导入是从iframe调用的,所以我必须进行以下更改(在foobar.js中)才能使其工作:

export function doFoo() {
    if (typeof foo != 'undefined') {
        foo();
    } else {
        parent.foo(); // called from an iframe.
    }
}