【发布时间】:2020-09-15 16:21:59
【问题描述】:
在 electronJS 中,我创建了一个自定义应用程序菜单,在其中我将事件从主进程发送到渲染器进程,但现在发生的事情是我正在监听该事件多次运行。因此,如果有人可以帮助我找到并解决错误。谢谢。 这是我的代码:
label: test,
click: function (item, focusedWindow, event) {
mainWindow.webContents.send('test')
}
ipcRenderer.on('test', (event, action) => {
console.log('called')
})
现在这个console.log被打印了多次。
原代码:
{
label: constants.APPLICATION_MENU.ARTICLE.MENU.KEYWORD.LABEL,
accelerator: constants.APPLICATION_MENU.ARTICLE.MENU.KEYWORD.ACCELERATOR,
click: function (item, focusedWindow, event) {
contents.send(constants.APPLICATION_MENU.ARTICLE.MENU.KEYWORD.EVENT)
}
}
created: function () {
ipcRenderer.on(constants.APPLICATION_MENU.ARTICLE.MENU.KEYWORD.EVENT, () => {
console.log('clicked')
})
},
【问题讨论】:
-
代码的上下文很重要。当同一个事件处理程序一次又一次地注册时,这是相当典型的行为,但我只是在猜测,因为您在问题中包含的代码并不完整,无法证明问题。请阅读以下帮助文章:minimal reproducible example.
-
@snwflk 我只是想知道我做错了什么,或者我注册错了。我已经添加了我使用的代码。
标签: vue.js menu electron web-content ipcrenderer