Значение окна не определено - Электрон js - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю электронное приложение и пытаюсь найти способы разделить мой код на различные модули для удобства сопровождения. У меня есть основной файл. js, а также другой файл, который я создал для манипуляции с windows (windowManipulation. js). В этом файле есть все переменные и функции, необходимые для создания windows, и эта часть работает.

let window 1;
let window 2;

module.exports.createWindow1 = () => {
 window1 = new BrowserWindow({...})
}
...

и в основном. js У меня есть:

const windowManipulation = require("./windowManipulation.js");
...

I могу создать windows просто отлично; однако после создания windows я не могу использовать Javascript, чтобы закрыть их, потому что значение переменной окна равно «undefined». Я думаю, что это происходит, потому что имена переменных находятся в файле windowManipulation. js, а не в главном файле. js, что означает, что windows создаются просто отлично, но тогда я теряю все ссылки на них .

Как лучше всего это решить? Я мог бы переместить весь код из моего файла windowManipulation. js в основной файл. js, но это лишило бы цели создание модулей, чтобы сделать код более понятным. Как вы справляетесь с windows в своих приложениях Electron JS, чтобы у вас все еще была модульность?

1 Ответ

0 голосов
/ 12 апреля 2020

Вот как я решил это решить. Я помещаю определения окон в свой основной файл 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, Я легко могу сделать это из своего основного. js.

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...