Uncaught (в обещании) TypeError: невозможно получить доступ к свойству «login», window.electronAPI не определено
Я считаю, что мой сценарий предварительной загрузки index.js не загружается, поскольку я вошел в систему в верхней части сценария, который никогда не загружается. отображает.
preload/index.js
Код: Выделить всё
import { contextBridge, ipcRenderer } from 'electron'
import { electronAPI } from '@electron-toolkit/preload'
const api = {}
contextBridge.exposeInMainWorld('electronAPI', {
login: (credentials) => ipcRenderer.invoke('login', credentials)
})
contextBridge.exposeInMainWorld('electron', electronAPI)
contextBridge.exposeInMainWorld('api', api)
Код: Выделить всё
function createWindow() {
// Create the browser window.
const mainWindow = new BrowserWindow({
width: 900,
height: 670,
show: false,
autoHideMenuBar: true,
icon,
// ...(process.platform === 'linux' ? { icon } : {}),
webPreferences: {
preload: join(__dirname, '../preload/index.js'),
sandbox: false,
contextIsolation: true,
nodeIntegrationInWorker: true
}
})
Код: Выделить всё
const handleSubmit = async (e) => {
e.preventDefault()
if (openCreateAccount) {
if (input.password !== input.confirmPassword) {
alert('Passwords do not match')
return
}
}
if (input.email && input.password) {
const user = await window.electronAPI.login({ email: input.email, password: input.password })
if (user) {
auth.loginAction(input)
} else {
alert('Invalid email or password')
}
}
- Установка предварительной загрузки: join(__dirname, '../preload/index.js') на абсолютный путь.
- Установка nodeIntegration: false.
- Проверка статуса window.electronAPI (не определено).
/> - Подтверждение правильности пути к сценарию предварительной загрузки.
- Добавление «type»: «module» в package.json.
- удаление/повторное добавление файлов node_modules и package-lock.json, очистка кэша npm и переустановка зависимостей.
- Использование const { contextBridge, ipcRenderer } = require('электрон').
Подробнее здесь: https://stackoverflow.com/questions/798 ... oad-script
Мобильная версия