问题描述
我正在制作一个电子应用程序,但无法发送或接收数据。我想将源自main.js
的数据发送到mainWindow.html
。我在sqlite 3中使用knex。我尝试了几种方法。感谢您的任何帮助,谢谢。
相关代码
main.js
app.on("ready",function () {
[...]
taskContents = [];
knex
.select("task")
.from("task")
.then((task) => {
for (var i = 0; i < task.length; i++) {
// console.log(task[i].task);
taskContents.push(task[i].task);
}
// I want to send task contents ===================
ipcMain.on("item:task",function(e,taskContents){
mainWindow.webContents.send("item:task",taskContents);
}
}).catch(function (error) {
console.error(error);
});
[...]
});
mainWindow.html
ipcRenderer.on("item:tasks",item){
console.log(item);
});
解决方法
在 main.js 中,您具有以下代码:
ipcMain.on("item:task",function(e,taskContents){
mainWindow.webContents.send("item:task",taskContents);
}
这意味着它将在向item:task
发送item:task
消息之前在主进程中等待mainWindow
消息。
我建议像这样删除ipcMain.on
:
mainWindow.webContents.send("item:task",'messageData');
而且在您的 mainWindow.html 中,您使用的是item:tasks
而不是item:task
:
例如应该是:
ipcRenderer.on("item:task",item){
代替:
ipcRenderer.on("item:tasks",item){