能否直接重新载入menuTemplate文件?
来源:11-4 动态修改菜单项

三生若空白
2020-03-21
老师您好,我看完了这节课,也用您的方式实现了一遍。但是我想了想,如果到时候需要添加菜单项,那么macOS和window对应的代码是不是又得改一遍?而且这种写死了的索引日后如果出现了bug要找起来是不是会比较困难?而且感觉各种代码也非常的分散,您看这几节课中各个文件中都出现了Store,到时候需要修改相关代码的时候就需要改正全部地方,这样是不是会有不便?
于是我想到直接将菜单重新加载一遍,我觉得这样应该能改善上述的问题,在查阅相关资料之后我实现了重新加载的操作,以下是我的代码:
ipcMain.on('update-the-menu', () => {
delete require.cache[require.resolve('./src/menuTemplate')]
menuTemplate = require('./src/menuTemplate')
menu = Menu.buildFromTemplate(menuTemplate)
mainWindow.setMenu(menu)
})
想请问您:我的想法正确吗?这种做法会更好吗?有没有什么缺点?针对这个问题存在更好的解决方法吗?
写回答
2回答
-
同学你好 我觉得你的改动非常好 解决了menu 的很多痛点,我当时实现的时候就是按照官方网站的做法进行简单的拷贝复制 没有进一步思考重用性等问题 你觉得你可以尝试给项目提一个 pr,很喜欢你的解决方案!
012020-03-22 -
三生若空白
提问者
2020-03-21
以上代码能够成功运行
00
相似问题