如何检查反应组件上的电子窗口是否关闭/打开?

分享于2022年10月08日 electron reactjs 问答
【问题标题】:how to check if an electron window is closed/open on react component?如何检查反应组件上的电子窗口是否关闭/打开?
【发布时间】:2022-07-06 07:49:37
【问题描述】:

我有一个多窗口应用程序,所以我想知道主窗口的 myComponent.tsx 上是否关闭了子电子窗口。

electron.js

 const childwindow= new BrowserWindow({ 
 parent: mainWindow,
        frame: false,
        transparent: true,
        resizable: false,
        ...
};

myComponent.tsx


 
const getChildStatus= ()=>{ 
   if (childwindow === closed){... do something}
}

  return (
    <>
     
    
  )
}```

    
    


【解决方案1】:

你可以使用 BrowserWindow.fromId(id)​ https://www.electronjs.org/docs/latest/api/browser-window#browserwindowfromidid

要获取 id,您应该首先使用以下方式存储每个窗口 id:win.id https://www.electronjs.org/docs/latest/api/browser-window#winid-readonly

id 是只读的,由电子生成,因此您无法更新,因此您需要将其存储在某个地方以便之后使用 您应该存储的数组示例:

const array =[{ name : "window1" , id : "id122333" }]

之后,您可以使用获取窗口

BrowserWindow.fromId(id)

//提示您可以使用名称而不是 id 在数组中搜索窗口

【讨论】: