当用户更改主题时,我使用 mainWindow.webContents.send
更改 DOM 中的类。我还将它保存在商店中的关键主题
下。
mainWindow.webContents.send('theme:change', theme);
store.set('theme', theme);
然后在renderer.js
中:
ipcRenderer.on('theme:change', (event, theme) => {
document.querySelector('body').className = `${theme}`;
});
这成功地更改了主题并将其保存在商店中。但是,现在我希望在启动应用程序时加载该主题,而不是返回到默认值。为此,在 app.on('ready')
中,我正在这样做:
mainWindow.webContents.send('theme:change', store.get('theme'));
但是,什么也没有发生。好像没发出去我哪里出错了?本质上,需要做的是当应用程序加载到商店中的类时更改 body
中的类。
最佳答案
想通了。我必须输入:
mainWindow.webContents.once('dom-ready', () => {
mainWindow.webContents.send('theme:change', store.get('theme'));
})
我正在尝试 mainWindow.on('dom-ready')
这就是它不起作用的原因。
关于javascript - Electron:在 mainWindow 加载时使用 mainWindow.webContents.send,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51932846/