reactjs - ipcRenderer 没有被触发

标签 reactjs typescript electron ipc ipcrenderer

我正在尝试使用 IPC 在我的 react 组件和主 Electron 过程之间进行通信。
In component :

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

最佳答案

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

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

ipcMain.on('file-command', () => {
  console.log('file open request');
});
您可能还想查看 invoke/handleipcRendereripcMain , 分别。它们使与 IPC 的合作更加愉快。

关于reactjs - ipcRenderer 没有被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65789936/

相关文章:

javascript - 动态添加或减去子数组?

typescript - 在不重复的情况下弃用枚举值

javascript - 如何通过 Electron 执行操作系统粘贴操作

reactjs - Electron 9 remote.getCurrentWindow()。close()不起作用

reactjs - 您应该在每个 `test()/it()` block 中还是在全局中渲染组件/选择元素?

javascript - 如何从一个对象数组获取值到另一个对象数组

CSS 模块和悬停 CSS 无法正常工作

angular - RXJS:返回外部可观察值的操纵值

node.js - 如何检测 webpack 在重新编译时使用了哪个编译选项

node.js - create-react-app,安装错误 ("command not found")