reactjs - 错误: Object has been destroyed when trying to re-open a second BrowserWindow - Electron. js

标签 reactjs typescript electron electron-window

在 Electron react typescript 应用程序中,我使用主窗口中的按钮打开一个新窗口。
如果我关闭第二个窗口,请单击右上角的“x”,
当单击主窗口中的按钮时,我收到以下消息:"Error invoking remote method. TypeError: Object has been destroyed"
我发现了这个:Object has been destroyed Exception after reopen BrowserWindow on button click in Electron
但是这个建议对我没有帮助,因为单击主窗口中的按钮,我称之为:

window.api.electronIpcOn('window-A-opened')
已经激活了main.ts中的功能:
ipcMain.handle("open-type-A-window")

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
  mainWindow = null;
  WindowTypeA = null;

  //WindowTypeA.destroy();

});
我也尝试了windowsList:main.ts
let windowsList = []; const windowDestroy = (win) {
  let i = windowsList.indexOf(win);
  if (i > -1) {
    windowsList.splice(i, 1);
    win = null;
  }
}

const createWindow = (): void => { 
  windowsList.push(WindowTypeA);

  WindowTypeA.on('closed', function () {
    windowDestroy(WindowTypeA);
  });
} 
但仍然是相同的错误:"Error invoking remote method. TypeError: Object has been destroyed" ....所以...有什么建议吗?

最佳答案

解决了 !!!通过分割窗口的创建:mainwindow和second-window:

const createWindowTypeA = (): void => {

}


const createWindow = (): void => {

}

关于reactjs - 错误: Object has been destroyed when trying to re-open a second BrowserWindow - Electron. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65688981/

相关文章:

typescript - babel-plugin-rewire 在 Typescript 项目中不起作用

node.js - 问题将 Firebase 添加到 Electron 项目,gRPC 依赖问题

typescript - Date.prototype.toLocaleDateString() 中的选项类型错误

javascript - 根据其他属性动态限制 TypeScript 中对象属性的类型

electron - 如何允许同一局域网中的其他机器(PC/Mac/移动设备)从我们的 Electron 应用程序下载?

git - 在Git Bash中,命令 `npm start`返回错误

css - 无法在中心显示 Material ui snackbar

reactjs - 如何在 react 中从外部/组件导入文件

javascript - 在事件回调函数中获取最新的 prop

javascript - VSCode 用户代码片段在 jsx 中不起作用