萌新最近在试图学习react和electron,想实现双击App组件时窗口在最大化和
正常大小之间切换,并在渲染进程中给出反馈;已经在渲染进程中绑定了双击事
件并向主进程发送信息
//这是新建窗口的属性
let win = new BrowserWindow({
show: false,
width: 1320,
height: 720,
frame: false,
resizable: false,
transparent: true,
hasShadow: true,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: true,
webSecurity: true,
webviewTag: true
},
})
//渲染进程内的
class App extends React.Component {
winSizeChange(){
ipcRenderer.send('change-size');
}
render() {
return (
<AppBase className="App" onDoubleClick={() => this.winSizeChange()}>
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<InputComponent />
</header>
</AppBase>
);
}
}
主进程接收信息后判断是否是最大化,做出相应动作并向渲染进程发送信息
//主进程内的
ipcMain.on('change-size', function() {
win.isMaximized() ? win.setFullscreen(true) : win.maximize();
win.webContents.send('isMax',win.isMaximized())
})
//渲染进程内的接收函数
ipcRenderer.on('isMax',(event,arg) => {
console.log(arg)
});
但是一开始窗口点击会最大化一次然后打印出来false,之后一直都是false
再也不会变回去,不知道是为什么。。。
大佬们帮忙看看啊_(:з」∠)_,感激不尽