首页 > 解决方案 > ipcRenderer 没有被触发

问题描述

我正在尝试使用 IPC 在我的反应组件主电子过程之间进行通信。 在组件中

export default class A extends React.Component{
.....
  openFile = () => {
    console.log('test');
    ipcRenderer.send('file-command', 'open');
  };
.....
}

main.dev.ts

  mainWindow.webContents.on('file-command', () => {
    console.log('file open request');
  });

  mainWindow.on('file-command', () => {
    console.log('file open request');
  });

  ipcRenderer.on('file-command', () => {
    console.log('file open request');
  });

都分别试了。但这些都不起作用。

如何在我的 react-electron 应用程序中正确使用 IPC。我用过这个样板:https ://github.com/electron-react-boilerplate/electron-react-boilerplate

标签: reactjstypescriptelectronipcipcrenderer

解决方案


ipcRenderer是您应该在渲染器进程中使用的模块(如果没有,则附加到 HTML 页面的脚本contextIsolation,否则预加载)。

在主进程中使用的模块称为ipcMain.

const {ipcMain} = require('electron');

ipcMain.on('file-command', () => {
  console.log('file open request');
});

您可能还想分别查看invoke/ handleinipcRendereripcMain。它们使与 IPC 的合作更加愉快。


推荐阅读