Electron 全局变量不会在 React 页面上的路由/URL 更改之间持续存在
Posted
技术标签:
【中文标题】Electron 全局变量不会在 React 页面上的路由/URL 更改之间持续存在【英文标题】:Electron global variable does not persist between route/URL changes on React page 【发布时间】:2017-10-29 19:20:55 【问题描述】:我目前正在开发一个包装客户网站的 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。
我如何确保全局变量是真正全局的并且在路由更改之间保持不变?
【问题讨论】:
【参考方案1】:我找到了答案。这是因为其中一个导入是从 iframe 调用的,所以我必须进行以下更改(在 foobar.js 中)才能使其工作:
export function doFoo()
if (typeof foo != 'undefined')
foo();
else
parent.foo(); // called from an iframe.
【讨论】:
以上是关于Electron 全局变量不会在 React 页面上的路由/URL 更改之间持续存在的主要内容,如果未能解决你的问题,请参考以下文章