Electronjsを学習しています。始めたばかりのサンプル電子プロジェクトの1つでこのエラーが発生します。
エラー:C:\ Users\GS\Desktop\electron\example4\index.js 21:3のapp.createWindowから画像を作成できませんでしたここにindex.jsファイルコードがあります
const { app, BrowserWindow } = require('electron')
function createWindow () {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
}
app.on("ready", createWindow);
なぜこれが起こっているのかはわかりませんが、1日前に作成した別のサンプルプロジェクトで動作している同じコードをコピーしました。それは非常に基本的な質問かもしれませんが、私は過去4〜5時間から理解しようとしていますが、それでも解決策は見つかりません。どんな助けでもいただければ幸いです
変数mainWindow
は、関数createWindow ()
の外部で宣言する必要があります。宣言しないと、関数の直後に、変数が表すBrowserWindow
オブジェクトが有効なままになります(ガベージコレクションされます)。出た。これで問題が解決するはずです:
const { app, BrowserWindow } = require('electron')
let mainWindow = null;
function createWindow () {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
}
app.on("ready", createWindow);
上記の答え(@ free-dom)は正しいですが、関数の外でmainwindow
変数を宣言する必要はありません。関数の外でmainwindow
を宣言していないかのように、次のように呼び出す必要がありますapp.whenReady().then(createWindow)
const { app, BrowserWindow } = require('electron')
function createWindow () {
let mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
}
app.whenReady().then(createWindow);