【发布时间】:2020-07-23 05:29:57
【问题描述】:
我正在创建一个电子应用程序,并试图找到将我的代码拆分为不同模块以实现可维护性的方法。我有我的 main.js 文件,还有另一个我为操作窗口创建的文件 (windowManipulation.js)。该文件包含创建窗口所需的所有变量和函数,并且该部分正在运行。
let window 1;
let window 2;
module.exports.createWindow1 = () => {
window1 = new BrowserWindow({...})
}
...
在 main.js 我有:
const windowManipulation = require("./windowManipulation.js");
...
我能够很好地创建窗口;但是,创建窗口后,我无法使用 Javascript 关闭它们,因为窗口变量的值是“未定义”。我认为这是因为变量名称在 windowManipulation.js 文件中,而不是在 main.js 文件中,这意味着窗口创建得很好,但是我失去了对它们的所有引用。
解决此问题的最佳方法是什么?我可以将 windowManipulation.js 文件中的所有代码移动到 main.js 文件,但这会破坏创建模块以使代码更易于维护的目的。您如何处理 ElectronJS 应用程序中的窗口,以便您仍然可以拥有一些模块化?
【问题讨论】:
-
window 和 1/2 之间的空格是偶然的吗?当您说 window 变量未定义时,您是在谈论 window1 变量吗?你是怎么关窗的呢
-
是的,这是我在这里输入的错误。对不起。我实际上指的是任何窗户。我只是以 window1 和 window2 为例。我正在尝试从 windowManipulation.js 关闭窗口,例如 module.exports.closeWindow1 = () => { window1.close()} ,但它没有执行它,因为它说 window1 未定义