remote函数在电子渲染器进程中返回undefined或null

时间:2018-01-21 11:45:01

标签: javascript node.js electron

我目前对electron.js及其模块授予的综合机会非常感兴趣。不幸的是,在尝试启动我的应用程序时,我在渲染器进程中遇到了同样的错误(名为“connector.js”)。

这是错误:

App threw an error during load
TypeError: Cannot match against 'undefined' or 'null'.
    at Object.<anonymous> (D:\Eigene Dateien\Desktop\Coding\DesktopApps\EVT\extFunctions\connector\connector.js:2:44)
    at Object.<anonymous> (D:\Eigene Dateien\Desktop\Coding\DesktopApps\EVT\extFunctions\connector\connector.js:22:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (D:\Eigene Dateien\Desktop\Coding\DesktopApps\EVT\main.js:9:1)

这是我的connector.js:

const $ = require('jquery');
const {BrowserWindow} = require('electron').remote;

let Remotewin = remote.getFocusedWindow();

$("#minimize").click(function(){
  Remotewin.minimize();
});

$("#maximize").click(function(){
  if(!Remotewin.isMaximized()){
    Remotewin.maximize();
  }else{
    Remotewin.unmaximize();
  }
});

$("#close").click(function(){
  Remotewin.close();
});

正如你可以清楚地看到的那样,我想在窗口的顶部框架创建我自己的菜单栏,但功能似乎被这个错误看似被拆除了。我已经搜索了一半的互联网和stackoverflow,但我发现的每个答案都指的是他们无法直接影响的webpack和/或电子bug。

这就是为什么我要清楚地指出,我在这个项目中没有使用webpack。我添加的外部模块只是jquery,正如您在代码中看到的那样。

所以我的问题;你是否在这种情况下遇到过这个错误,你甚至可能知道一个解决方案吗?或者你可以提到有类似问题的人吗?

提前谢谢你,J0nny

1 个答案:

答案 0 :(得分:1)

由于getFocusedWindow()BrowserWindow的静态方法,

let Remotewin = remote.getFocusedWindow();

应该是:

let Remotewin = BrowserWindow.getFocusedWindow();