gpt4 book ai didi

vue.js - Electron JS事件多次触发

转载 作者:行者123 更新时间:2023-12-03 12:32:46 27 4
gpt4 key购买 nike

在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')
})
},

最佳答案

因此,经过大量搜索后,我找到了答案:如果您要切换路线,并在一个组件上注册了某些 channel ,而在另一个组件上注册了某些 channel ,那么当该组件是已卸载。我的问题是我在路由之间切换,并且每次创建的运行都在运行时,我注册了ipc渲染器以收听那些 channel 。
因此,我删除了已破坏生命周期 Hook 中的 channel 的监听器。
可以通过以下方式完成:
ipcrenderer.removeAllListeners([channel])
这是文档的链接:Electron

关于vue.js - Electron JS事件多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63906065/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com