【问题标题】:Electron global variable does not persist between route/URL changes on React pageElectron 全局变量不会在 React 页面上的路由/URL 更改之间持续存在
【发布时间】:2023-04-07 08:04:01
【问题描述】:

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

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

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

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

import { doFoo } from 'foobar';

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

export function doFoo() {
    foo();
}

当我从登录页面导入并调用 doFoo 时,一切正常。 当 React 更改路由/URL 时,我得到 Uncaught ReferenceError: foo is not defined

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

【问题讨论】:

    标签: javascript reactjs electron


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 2016-04-13
      • 2017-02-08
      • 2018-07-12
      • 1970-01-01
      • 2020-12-14
      • 2014-05-27
      相关资源
      最近更新 更多