Menu 一个菜单项如何在电子中被分离成它自己的模块?

Menu 一个菜单项如何在电子中被分离成它自己的模块?,menu,electron,menuitem,Menu,Electron,Menuitem,对于Electron和building菜单,我是新手,我想看看是否可以分离MenuItem,以防止出现大量文件,但我遇到了一些问题。例如,我将菜单代码分离到main.js之外,并将菜单移动到菜单目录中的渲染器目录中。我可以使用以下命令从main.js调用菜单: mainMenu.js: 它是有效的,但每个菜单项是否可以进一步分离到它们自己的文件中?正确的方法是什么 我尝试使用mainMenu.js并将其编码为: const foo = require('./itemFoo') module.e

对于Electron和building菜单,我是新手,我想看看是否可以分离
MenuItem
,以防止出现大量文件,但我遇到了一些问题。例如,我将菜单代码分离到main.js之外,并将菜单移动到菜单目录中的渲染器目录中。我可以使用以下命令从main.js调用菜单:

mainMenu.js:

它是有效的,但每个菜单项是否可以进一步分离到它们自己的文件中?正确的方法是什么

我尝试使用mainMenu.js并将其编码为:

const foo = require('./itemFoo')

module.exports = [
    {foo},
    {
        label: 'Bar',
        id: 'itemBar',
        submenu: [
            {label: 'Enter Bar'},
            {label: 'Exit Bar'}
        ]
    }   
] 
itemFoo.js:

module.exports = [
    {
        label: 'Foo',
        id: 'itemFoo',
        submenu: [
            {label: 'Enter Foo'},
            {label: 'Exit Foo'}
        ]
    }
]
但我有一个错误:

TypeError:MenuItem的模板无效:必须至少有一个 标签、角色或类型

Electron中的菜单项是否可以隔离到它自己的模块中?如果可以,如何隔离?我在搜索时或在

下没有看到这一点,这应该可以工作(但未经测试):

主要流程

let mainMenuTemplate =
[
    require('./renderer/Menus/itemFoo'),
    require('./renderer/Menus/itemBar')
];
let mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
module.exports =
{
    label: 'Foo',
    id: 'itemFoo',
    submenu: [
        {label: 'Enter Foo'},
        {label: 'Exit Foo'}
    ]
};
module.exports =
{
    label: 'Bar',
    id: 'itemBar',
    submenu: [
        {label: 'Enter Bar'},
        {label: 'Exit Bar'}
    ]
};
itemFoo.js

let mainMenuTemplate =
[
    require('./renderer/Menus/itemFoo'),
    require('./renderer/Menus/itemBar')
];
let mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
module.exports =
{
    label: 'Foo',
    id: 'itemFoo',
    submenu: [
        {label: 'Enter Foo'},
        {label: 'Exit Foo'}
    ]
};
module.exports =
{
    label: 'Bar',
    id: 'itemBar',
    submenu: [
        {label: 'Enter Bar'},
        {label: 'Exit Bar'}
    ]
};
itemBar.js

let mainMenuTemplate =
[
    require('./renderer/Menus/itemFoo'),
    require('./renderer/Menus/itemBar')
];
let mainMenu = Menu.buildFromTemplate(mainMenuTemplate);
module.exports =
{
    label: 'Foo',
    id: 'itemFoo',
    submenu: [
        {label: 'Enter Foo'},
        {label: 'Exit Foo'}
    ]
};
module.exports =
{
    label: 'Bar',
    id: 'itemBar',
    submenu: [
        {label: 'Enter Bar'},
        {label: 'Exit Bar'}
    ]
};

注意:中间的
main menu.js
文件可能是不必要的…

我知道我做错了什么。我把菜单项写错了。应该是:

main.js:

mainMenu.js:

itemBar.js:

itemFoo.js:

module.exports = [
    {
        label: 'Foo',
        id: 'itemFoo',
        submenu: [
            {label: 'Enter Foo'},
            {label: 'Exit Foo'}
        ]
    }
]
这将允许我将每个主菜单项放在自己的文件中,并清除main.js