我目前通过开发一个小型桌面应用程序来熟悉金牛框架。我一直在测试的大多数金牛JS API模块到目前为止都已经工作了,除了dialog
和notification
模块。当测试dialog
模块的任何函数时,例如open
, promise立即解析为null
值,并且在金牛端没有任何明显的发生(例如,当调用open
函数时,应该出现一个文件对话框)。我根本没有改变生成的Rust文件,我在前端使用了VueJS SPA,我一直在64位Windows 10环境中运行。此外,tauri.conf.json
文件具有使用这些模块的正确权限集。
dialog.open
函数的代码:
import { Options, Vue } from "vue-class-component";
import { open as openDialog } from "@tauri-apps/api/dialog";
@Options({
components: {
... some vue components ...
},
})
export default class Freeze extends Vue {
selectedFilepaths: string[] = [];
async selectFile(){
const pathName: string = await openDialog({
defaultPath: ".",
multiple: false
}) as string;
this.selectedFilepaths.push(pathName);
}
}
任何帮助都将是非常感激的:)
事实证明,罪魁祸首是defaultPath
field。
您必须在那里提供一个有效的路径(或者根本不使用它),否则它将静默失败。