Electron - ошибка ipcRenderer: невозможно прочитать свойство 'send' из неопределенного - PullRequest
0 голосов
/ 15 октября 2018

У меня есть класс с функциями Constructor и Async.Я сделал module.exports, чтобы я мог вызывать свой класс из моего файла GUI.js и из моего файла GUI.js, мне нужен этот класс, и все работает отлично.

Но внутри моего класса япытаюсь сделать это ipcRenderer.send ('message', 'Hello');

И я получаю эту ошибку:

TypeError: Невозможно прочитать свойство 'send' из неопределенного

возможно ли удалить ipcRenderer в моем GUI.js?

Спасибо.

Мне нужен модуль в моем основном файле, и в моем файле рендерера он отправляет ipcRenderer.send('startMyClass');

И в моем главном файле:

ipcMain.on('startMyClass', (event, args) => { const client = new myClass(); client.Start(); })

Это мой файл class / index.js, который требуется в моем главном файле.

const request = require('request-promise');
const cheerio = require('cheerio');
const { ipcRenderer } = require('electron')

class myClass {
  constructor() {
    this._jar = request.jar();
    this._request = request.defaults({ jar: this._jar });
  }

  async Start() {

   await this.Test();


  };

  async Test() {
    ipcRenderer.send('myMessage', 'Hello');
   }

}


module.exports = myClass;

РЕДАКТИРОВАТЬ: Если ямне это не нужно, и у меня есть весь класс в моем основном файле, я могу сделать event.sender.send ('myMSG', 'hello');

Но я хочу сделать это в своем классе, это НЕв том же файле, что и мой основной.

1 Ответ

0 голосов
/ 18 июля 2019

Напишите класс, как показано ниже:

class myClass {
  constructor() {
    if ((<any>window).require) {
      try { ipc = (<any>window).require('electron').ipcRenderer; } catch (e) { throw e; }
    }
    else { console.warn('App not running inside Electron!'); }

    this._jar = request.jar();
    this._request = request.defaults({ jar: this._jar });
  }
}
...