Javascript 在electron的主进程外创建菜单栏

Javascript 在electron的主进程外创建菜单栏,javascript,node.js,electron,Javascript,Node.js,Electron,我有一个菜单上的电子有一个功能,改变页面时按下。这个菜单在主电子过程中工作得非常好,但是,为了使主过程文件不太长,我将菜单更改为预加载,并使用遥控器制作菜单。但是,当将remote.getCurrentWindow()与loadFile方法一起使用时,将发送以下警告 正在尝试在渲染器窗口中调用已禁用的函数 关闭或释放。此处提供的函数:未定义 菜单代码以简化的方式显示,如下所示 const {remote} = require('electron'); const { Menu } = remot

我有一个菜单上的电子有一个功能,改变页面时按下。这个菜单在主电子过程中工作得非常好,但是,为了使主过程文件不太长,我将菜单更改为预加载,并使用遥控器制作菜单。但是,当将remote.getCurrentWindow()与loadFile方法一起使用时,将发送以下警告

正在尝试在渲染器窗口中调用已禁用的函数 关闭或释放。此处提供的函数:未定义

菜单代码以简化的方式显示,如下所示

const {remote} = require('electron');
const { Menu } = remote

const win = remote.getCurrentWindow();

const menu = Menu.buildFromTemplate([
  {label: 'menu',
    submenu: [
      {label: 'item1',
        click: ()=>{win.loadFile('item1.html')}
      },
      {label: 'item2',
        click: ()=>{win.loadFile('item2.html')}
      },
      {label: 'item3',
        click: ()=>{win.loadFile('item3.html')}
      },
      {label: 'item4',
        click: ()=>{win.loadFile('item4.html')}
      },
    ]
  },
]);

Menu.setApplicationMenu(menu);
我在文档中没有找到在菜单栏中更改栏上页面的方法


我想知道一些方法来解决这个问题,或者在main.js之外创建菜单栏的更好的方法,我不知道,但是我会尝试在菜单操作的上下文中调用
getCurrentWindow
,比如:
remote.getCurrentWindow().loadFile('item1.html')
,因为可能
const win
超出了范围。只是一个猜测。这是我尝试做的第一件事之一,但问题仍然是一样的。啊,好吧。我被菜单代码的长度所困扰(我有3个菜单),我试图将它们外部化(),但这导致了更复杂的“解决方案”,所以我放弃了,继续前进。