我已将电子版更新为版本19,但出现错误:
无法读取未定义的属性(阅读“showOpenDialog”)
我有一个保存文件的功能:
window.SaveFile = function (options, callBack) {
const {
name, //the name showed for the extension/s
extensions,
fileName
} = options;
let filters = [{ name: name, extensions: Array.isArray(extensions) ? extensions : [extensions] }];
dialog.showSaveDialog(null, { properties: ['saveFile'], name: [name], filters: filters, icon: 'main.ico', defaultPath: (fileName || name) + '.' + extensions }, (returnValue) => {
callBack(returnValue);
});
}
但是dialog
是未定义的。在index.js中我设置了:
webPreferences: {
enableRemoteModule: true,
nodeIntegration: true
}
我需要的电子是
const { ipcRenderer, dialog, remote, ipcMain } = require('electron');
但是dialog
和remote
未定义。
我该如何解决这个问题?
1条答案
按热度按时间jrcvhitl1#
不久前,
remote
模块被弃用(请参阅Electron的突破性更改文档)。因为dialog
是主进程模块,所以现在必须从主进程打开对话框。当然,这会使事情变得有点复杂,但是对于
ipcRenderer
和ipcMain
,这应该很容易实现。假设渲染器进程中有
const { ipcRenderer } = require("electron");
:然后在主流程中: