我不斷收到此錯誤:
TypeError: Cannot read properties of undefined (reading 'showOpenDialog')
如何以最少的變更呼叫 showOpenDialog()
?
我正在使用帶有 Webpack 5 的新 Quasar/Electron。
這是我的 vue 檔案中的 openFile() 方法:
openFile () { window.electronApi.dialog.showOpenDialog({ title: 'Load File', properties: ['openFile'] }).then(result => { const filename = result.filePaths[0] if (filename) { const extension = getExtensionName(filename) console.log(extension) } else { console.log('No file selected') } }).catch(err => { console.log(FILE + 'Error: ' + err) }) },
這是在 electro-preload.js 中宣告的內容:
import { contextBridge} from 'electron' contextBridge.exposeInMainWorld('electronApi', { dialog: require('electron').dialog, showOpenDialog: require('electron').showOpenDialog })
P粉7887656792024-03-27 09:34:03
感謝@creative learner的想法!這有效!
import { contextBridge} from 'electron' import { dialog } from '@electron/remote' contextBridge.exposeInMainWorld('electronApi', { dialog: dialog })