嗨,我将ElectronJS与React结合使用,试图在我单击lectorn js菜单上的保存按钮时触发一个事件。我正在尝试侦听组件中的事件,但是单击菜单项时出现此错误;
Uncaught Exception:
ReferenceError: Event is not defined
at click (/private/Apps/hosts/src/electron-starter.js:38:21)
这是我的代码;
const template = [
{
label: 'File',
submenu: [
{
label: 'Save', accelerator: 'Cmd+S',
click() {
console.log('send event');
new Event('save-hosts-file');
}
},
]
},
];
以及在我的组件中;
componentDidMount() {
document.getElementsByTagName("body")[0].addEventListener('save-hosts-file', function (e) { console.log('save file');}, false)
}
关于为什么发生这种情况的任何想法?任何帮助将不胜感激!
答案 0 :(得分:1)
const template = [
{
label: 'File',
submenu: [
{
label: 'Save', accelerator: 'Cmd+S',
click() {
mainWindow.webContents.send('save-hosts-file');
}
},
]
},
];
componentDidMount() {
ipcMain.on('save-hosts-file', (event) => {
console.log('save file');
});
}
您应该记住两件事:
1)从电子发送事件到反应并在反应中接收
发送事件使电子起反应- mainWindow.webContents.send
接收电子发出的反应中的事件- ipcRenderer.on
2)发送事件从对电子的反应到电子的接收
从电子反应发送事件- ipcRenderer.send
从反应发送的电子中接收事件- ipcMain.on