在我的电子项目中,我在尝试从不同窗口发送和接收数据时收到以下TypeError。
我的导入
const electron = require("electron");
const url = require("url");
const path = require("path");
const { Menu } = require("electron/main");
const { webContents } = require("electron");
const { app, BrowserWindow, ipcMain } = require("electron");
错误位置
发送数据
<script>
const electron = require("electron");
const { ipcRenderer } = electron;
const form = document.querySelector("form");
form.addEventListener("submit", submitForm);
function submitForm(e) {
e.preventDefault();
const item = document.querySelector("#item").value;
ipcRenderer.send("item:add", item);
}
</script>
接收数据
// Catch item:add
ipcMain.on("item:add", function (e, item) {
console.log(item);
mainWindow.webContents.send("item:add", item);
addWindow.close();
});
3条答案
按热度按时间58wvjzkj1#
我知道我错在哪里了,所以我在回答我自己的问题。
看起来我试图发送的数据还没有完全被接收到,因此我不得不等待我的页面加载,然后发送数据如下。
lf3rwulv2#
试试这样的方法:
ercv8c1e3#
对我来说,这是一个范围错误,我在模块级别有一个
let mainWindow
,但在createWindow函数中,我有一行async function createWindow() { const mainWindow = new BrowserWindow
实际上,我有两个mainWindow示例,第一个为null,第二个在createWindow函数的作用域内。
我删除了
const
,并纠正了示波器,问题解决了。更正代码:
async function createWindow() { mainWindow = new BrowserWindow
My noob error:-)