我有一个使用反应的电子应用程序。我在 preload.js 中使用 contextBridge。我想将 app.js 中的变量通过桥传递给主进程中的函数;它将一个值返回到桥并返回到 app.js,它会以某种方式更新状态并触发重新渲染。以下代码正在工作到更新状态。我不明白如何从 preload.js 到 app.js 获取变量?我希望的临时技巧是从预加载中设置 localstorage 并调用 setTimeout 函数来观察特定变量的变化。我知道这是一种不太有趣的方法。代码在这里:
app.js -
async function createSpreadsheet() {
let x = await electron.google.createSpreadsheetFiles(sheetFileName)
}
preload.js -
const { ipcRenderer, contextBridge, net } = require('electron');
contextBridge.exposeInMainWorld('electron', {
google: {
createSpreadsheetFiles(name) {
ipcRenderer.send('gCreateSpreadSheetFile', name);
let x = ipcRenderer.on('gCreateSpreadSheetFile-return', function (event, arg) {
})
return x
},
},
})
main.js -
ipcMain.on('gCreateSpreadSheetFile', (event, name) => {
async function all() {
let resp = await g.createSheetFile(name, win)
event.sender.send('gCreateSpreadSheetFile-return', resp)
}
all()
})