Reactjs 从电子返回反应结果

Reactjs 从电子返回反应结果,reactjs,electron,Reactjs,Electron,我有一种电子打印方法: ipcMain.on('print', (results, total) => { PosPrinter.print(print_data, { printerName: 'RECEIPT', preview: false, width: '170px', // width of content body margin: '15 15 15 15', // m

我有一种电子打印方法:

ipcMain.on('print', (results, total) => {
    PosPrinter.print(print_data, {
      printerName: 'RECEIPT',
      preview: false,
      width: '170px',               //  width of content body
      margin: '15 15 15 15',            // margin of content body
      copies: 1,                   
      silent : true
  })
  .then(() => {
    // some code ...
    console.log("done");
    return "Printing successful.."
  })
  .catch((error) => {
    console.error(error);
    return "Something went wrong."
});
我在react端访问此方法,如下所示:

  handlePrint = (e) => {
    e.preventDefault();
    ipcRenderer.send('print', this.state.cheques, this.state.total);
  }

如果打印成功或渲染器出现错误,我如何才能返回状态消息?

您必须使用event.reply()函数fromipcMain.on()

使用您的代码创建一个示例

主要过程电子

渲染器进程(网页)反应

您可以在组件或App.js的componentDidMount()useffect()中分配渲染过程代码

这是在执行时将数据作为返回函数从主进程传输到渲染进程的方法

ipcMain.on('print', (event, results, total) => {
// some code

.then(() => {
 // some code ...
 event.reply('print', 'Printing successful..')

}).catch((error) => {
 event.reply('print', 'Something went wrong.')
});
ipcRenderer.on('print', (event, arg) => {
  console.log(arg) // prints "Printing successful.." or "Something went wrong."
})