我正在创建一个 Electron 应用程序,并试图找到将代码拆分为不同模块以实现可维护性的方法。我有我的 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 应用程序中的窗口,以便您仍然可以拥有一些模块化?
最佳答案
这就是我决定解决它的方法。我将窗口定义放在 main.js 文件中,然后在该文件中创建一个函数,该函数调用该函数在 windowManipulation 文件中创建窗口。该文件返回实际的窗口。
main.js
...
const openWindow = require("./pathToFile")
let window1;
...
module.exports.createWindow1 = () => {
window1 = openWindow.openWindow1();
}
windowManipulation.js
...
module.exports.openWindow1 = () => {
let window1 = new BrowserWindow({
...
})
return(window1)
}
...
现在,如果我想操作 window1,我可以从我的 main.js 轻松完成。
我希望这可以帮助别人。
关于node.js - 窗口值未定义 - Electron js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61140743/