我正在尝试使用 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
/handle
在 ipcRenderer
和 ipcMain
, 分别。它们使与 IPC 的合作更加愉快。
关于reactjs - ipcRenderer 没有被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65789936/