Reputation: 2631
The following code produces an error
const ipcMain = require('electron').ipcMain;
ipcMain.on('open-file-dialog', function (event) {});
This error is thrown in console:
Uncaught TypeError: Cannot read property 'on' of undefined
As mentioned on this question, i also tried using
const ipcMain = require('ipc-main');
but am getting the same error.
Seems that ipcRenderer
is defined in the electron
package, but not ipcMain
. How do i fix this? Already tried reinstalling the latest nodejs and running npm install
on a fresh checkout.
Upvotes: 7
Views: 8576
Reputation: 5521
In Renderer process you should use the counterpart of ipcMain
, which is ipcRenderer
. See docs of ipcMain
for code examples
Your corrected code would look like
const { ipcRenderer } = require('electron');
ipcRenderer.on('open-file-dialog', function (event) {});
Upvotes: 4
Reputation: 2631
Problem seems to be that I loaded the module from a renderer process. Moving the ipcMain related code to the main module (unsurprisingly) solved the issue.
Upvotes: 1