Использование события win.on в процессе рендерера приводит к ошибке на консоли - PullRequest
1 голос
/ 05 марта 2020

Версия приложения Electron 8.0.2

Сведения о выпуске
Использование событий в процессе визуализации

let win = require('electron').remote.getCurrentWindow();
win.on('focus', ()=>{
  console.log('focused');
});
win.on('blur', ()=>{
  console.log('blured');
});

Выдает ошибку на консоли разработки, говоря

Attempting to call a function in a renderer window that has been closed or released.

Ожидаемое поведение
Он должен работать без ошибок или предупреждений

Фактическое поведение
выдавать непрерывные предупреждения на консоли

Воспроизвести
https://gist.github.com/AtiqGauri/1cea1c548025faa77f9f29008ca5a5fe#file -main- js -L4

Скриншоты
enter image description here

1 Ответ

1 голос
/ 05 марта 2020

Electron сообщает вам, что вы не очистили правильно, и на удаленном объекте от слушателя, который больше не существует, существует прослушиватель.

Решение - Избегайте использования удаленного или очистите ваш обработчики событий на удаленных объектах, если вам нужно его использовать

Добавить средство удаления событий в ваш код, в который вы добавили код события

window.onbeforeunload = (e) => {
    win.removeAllListeners();
};

Это удалит ALL слушатели прикреплены к вашему окну перед его разгрузкой.

Примечание - onbeforeunload будет вызываться перед обновлением или закрытием страницы.

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