我正在尝试学习Electron,但是正在使用的Pluralsight教程遇到问题。我安装了“电子预建”模块。每次我运行“ npm start”时都会出现错误。窗口将按预期方式打开,但是在对话框中弹出的错误消息使整个事情变得混乱。这是错误:
未捕获的异常:TypeError:无法读取对象上未定义的属性“ on”。
较长的错误消息还有很多,但它不会让我复制和粘贴,其余的错误仅涉及main.js代码第14行上的假定问题的位置。这是我的main.js文件:
const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow
let mainWindow
app.on('ready', _ => {
mainWindow = new BrowserWindow({
height: 400,
width: 400
})
})
mainWindow.on('closed', _ => {
console.log('closed')
mainWindow = null
})
这表明我创建的BrowserWindow对象没有“ on”方法,但是根据Electron文档,我知道这是错误的:
https://electronjs.org/docs/api/browser-window
所以我在想mainWindow的值没有设置。我可以在声明新的BrowserWindow对象时尝试实例化mainWindow,但是如果尝试指示只能在就绪函数中实例化BrowserWindow对象,则会收到错误消息。
你必须了解如何在node.js中回调的工作,回调是异步执行的,之前app.onready
的火灾,mainWindow
仍是不确定的,因此的声明let mainWindow
受让人undefined
到mainWindow
,采取mainWindow.on("closed", ....)
到app.on("ready")
事件处理程序。做这个
const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow
let mainWindow
app.on('ready', _ => {
mainWindow = new BrowserWindow({
height: 400,
width: 400
})
mainWindow.on('closed', _ => {
console.log('closed')
mainWindow = null
})
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句