javascript - Electron 的 showOpenDialog 中的过滤器仅返回数组中的第一个对象
问题描述
const getFile = () => {
const files = dialog.showOpenDialog({
properties: ['openFile'],
filters: [
{ name: 'Markdown', extensions: ['md', 'mdown', 'markdown'] },
{ name: 'Text', extensions: ['txt', 'text'] },
],
});
对于我的过滤器,该应用程序仅使用第一个对象作为正确的过滤器。例如,当首先列出降价时,我只能选择降价文件,而当首先列出文本对象时,我只能选择文本文件。根据文档,我应该能够像这样创建过滤器
{
filters: [
{ name: 'Images', extensions: ['jpg', 'png', 'gif'] },
{ name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
{ name: 'Custom File Type', extensions: ['as'] },
{ name: 'All Files', extensions: ['*'] }
]
}
我错过了什么?
解决方案
Electron 对话过滤器对象将过滤器作为具有文件扩展名数组的过滤器对象数组。当我们添加多个过滤器对象时,它会显示为具有已定义过滤器对象名称的过滤器列表。作为简单的下拉绑定。
例如 -
示例 1 -当我们使用下面的过滤器对象“过滤器”时 -
const openDialogOptions: OpenDialogOptions = {
defaultPath: '',
filters: [
{ name: "All Files", extensions: ["*"] },
{ name: 'Word Template', extensions: ["dot", "dotx"] },
{ name: 'Word Document', extensions: ["doc", "docx"] },
{ name: 'MS Perfect', extensions: ["wpt"] }],
properties: ['openFile']
}
它在下拉列表中绑定过滤器列表,如下所示 -
示例 2 -当我们使用下面的过滤器对象“过滤器”时 -
const openDialogOptions: OpenDialogOptions = {
defaultPath: '',
filters: [
{ name: 'Word Template', extensions: ["doc", "docx","dot", "dotx"] },
{ name: 'MS Perfect', extensions: ["wpt"] }],
properties: ['openFile']
}
它在下拉列表中绑定过滤器列表,如下所示 -
推荐阅读
- locust - How to include RPS in locust report
- javascript - 为什么它被称为函数表达式而不是函数声明?
- python - 即使键盘提交工作,Selenium 提交也不起作用
- php - 使用 Laravel + Shopify Oiset 发出 Ajax 请求时如何设置商店?
- reactjs - 如何在使用 React 的 redux 操作后重定向到不同的页面
- websphere - 自定义 TAI 未生成 LtpaToken2
- python - 您可以在没有环境变量的情况下导出 conda env 吗?
- php - 产品正在更新而不是新产品插入 laravel?
- java - 在这个数组中寻找最小的数字(想了解自己解决的逻辑;不想要答案)
- java - 无法使用 PHP shell_exec() 向 Java 程序提供输入