Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

137
Visualizações
Detecte un clic en el elemento popUpContextMenu, haga clic en la aplicación Electron Tray

Intenté crear un elemento de menú de clic derecho llamado "Borrar caché" que borra el caché del programa en el que estoy trabajando. El problema es que la función que envía el evento con ipcMain se ejecuta tan pronto como el elemento de la bandeja es cuando se hace clic con el botón derecho, no cuando se hace clic en el botón Borrar caché real. La razón de esto es porque tengo mi menú configurado así:

 // clear cache function const clearCache = () => { let response = "Successfully cleared cache."; mainWindow.webContents.send('clearCacheResponse', response); console.log(response) }; const menu = [ { label: '╸Clear all Cache╺', role: clearCache() }, { label: 'Separator', type: 'separator'}, { label: '╸Quit Rich Presence╺', role: 'quit' }, ]; tray.popUpContextMenu(Menu.buildFromTemplate(menu))

donde el rol en la etiqueta es una función. El problema con esto es que se ejecuta cuando el objeto se inicializa por primera vez, lo que significa que está borrando el caché cada vez que hace clic derecho por primera vez. ¿Hay alguna otra forma de ejecutar una función personalizada con popUpContextMenu de Electron, o estoy atascado tratando de encontrar una solución? He investigado bastante y no he encontrado una manera de activar este evento solo al hacer clic en la etiqueta. Aquí está el código completo para el menú contextual del botón derecho que estaba tratando de crear:

 rightClick = () => {// clear cache function const clearCache = () => { let response = "Successfully cleared cache."; mainWindow.webContents.send('clearCacheResponse', response); console.log(response) }; const menu = [ { label: '╸Clear all Cache╺', role: clearCache() }, { label: 'Separator', type: 'separator'}, { label: '╸Quit Rich Presence╺', role: 'quit' }, ]; tray.popUpContextMenu(Menu.buildFromTemplate(menu))} tray.on('right-click', () => { rightClick() });

TL:RD; Mi función se ejecuta cuando el objeto se inicializa por primera vez, tratando de encontrar alguna forma de activar la función solo al hacer clic en la etiqueta del elemento del menú contextual.

Intenté: para crear un menú contextual de clic derecho donde haga clic derecho y tenga las siguientes opciones:

  • Limpiar cache
  • Salir de la aplicación

Lo que esperaba: Abrir el menú y elegir la opción correcta, y que esa opción ocurra correctamente.

Lo que realmente sucedió: la función Borrar caché se ejecutó tan pronto como inicié por primera vez el objeto del menú, lo que significa que borra el caché del usuario cada vez que hace clic con el botón derecho.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Estaba usando: role: clearCache() . La forma correcta de escribir esto para funciones personalizadas es: click: clearCache

(Gracias a vanowm por mostrarme cómo solucionar esto, ¡no me di cuenta de que esto estaba en la documentación hasta ahora!)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda