我正在尝试为我的应用程序制作一个按钮,当你按下它时,会弹出一个“note card”。但是现在当我试图将“event”传入IPCmain的一个参数时,它说它已弃用。我该怎么办?
main.js
const {app, BrowserWindow, ipcMain} = require('electron');
let mainWindow
function createWindow() {
mainWindow = new BrowserWindow({width: 800, height: 600})
mainWindow.loadFile('index.html')
}
app.whenReady().then(createWindow);
app.on('window-all-closed', ()=> {
app.quit();
})
app.on('activate', () => {
if(BrowserWindow.getAllWindows().length === 0){
createWindow();
}
});
ipcMain.on('createNote', () => {
const noteText = 'New Note';
mainWindow.webContents.send('noteCreated', noteText);
});
字符串
create.js
const { ipcRenderer } = require('electron');
document.getElementById('createButton').addEventListener('click', ()=>{
ipcRenderer.send('createNote');
});
ipcRenderer.on('noteCreated', (noteText) => {
const noteContainer = document.getElementById('noteContainer');
const noteCard = document.createElement('div');
noteCard.textContent = noteText;
noteContainer.appendChild(noteCard);
});
型
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset = "UTF-8">
<meta name = "viewport" content="width=device-width, initial-scale=1.0">
<script src="create.js"> </script>
<title> ToDo </title>
</head>
<body>
<div id="Header">
<h1> Header </h1>
<button id="createButton"> Create </button>
</div>
<div id="noteContainer"></div>
</body>
</html>
型
我尝试将变量“WARNNote”从WARN.js传递到参数中,但这不起作用。
1条答案
按热度按时间t40tm48m1#
当得到一个错误时,最好检查所有相关的documentation。在那里,我们可以看到渲染器进程中
noteCreated
事件的侦听器应该有一个非常不同的签名。事实上,文档中列出了Electron将传递给listener函数的两个参数,即
event
,其类型为IpcRendererEvent
,以及...args
,其类型为any[]
。圆点告诉你,你可以在args
的位置期待多个参数,参见MDN。args
将是您传递给webContents.send()
的任何内容。因此,您应该修改侦听器函数,字符串
参数的命名无关紧要,只有它们的顺序和位置重要:第一个参数总是
IpcRendererEvent
(它允许您直接与消息的发送者通信),后面是您提供的任何参数。