gpt4 book ai didi

javascript - Electron - openShowDialog 未定义

转载 作者:行者123 更新时间:2023-12-03 12:37:44 25 4
gpt4 key购买 nike

我正在使用 Electron,我制作了一个带有 div 的自定义标题栏,它隐藏了 2 个 div,
我希望这些 div 之一(标记为“打开”)打开文件管理器
这可以使用 shell.showItemInFolder(--dirname); 来完成。但问题是我无法从此方法中检索任何数据,另一种方法是在 Electron const{dialog} = require('electron'); 中使用 Dialog
我最想写这个console.log(dialog.openShowDialog({properties:['openFile']}));这(根据我观看的一些 youtube 视频)应该打开一个文件管理器,如果我通过这个选择一个文件,它应该记录一个未决的 promise 。但我收到一个错误 cannot get the property 'showOpenDialog'of undefined

const{dialog} = require('electron');
function openFS(){
win.openDevTools();
console.log(dialog.showOpenDialog({properties:['openFile']}));
}
这个openFS函数是在上面提到的div的点击上调用的。
我该如何解决?

最佳答案

cannot get the property 'showOpenDialog'of undefined


该错误表明 dialog未定义。如果您在渲染过程中执行此代码,那么您不会导入 dialog模块正确 - 它需要通过 remote 访问(假设您已经为渲染器指定了 nodeIntegration: true)。就个人而言,我在主进程中处理所有对话调用,但这是一个选择问题。
const {dialog} = require('electron').remote
然而 。 . the remote module is deprecated如链接文档所示,在 Electron 12 中。我还没有使用它推荐的方法,所以我不能谈论任何问题。

远程模块在 Electron 12 中已弃用,并将在
Electron 14。它被 @electron/remote 模块取代。
// Deprecated in Electron 12:
const { BrowserWindow } = require('electron').remote

// Replace with:
const { BrowserWindow } = require('@electron/remote')

// In the main process:
require('@electron/remote/main').initialize()

关于javascript - Electron - openShowDialog 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65842587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com