当用户更改主题时,我使用mainWindow.webContents.send
来更改DOM中的类。我还将其保存在商店中,位于密钥theme
下。
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
中的类时进行更改。
答案 0 :(得分:2)
弄清楚了。我必须输入:
mainWindow.webContents.once('dom-ready', () => {
mainWindow.webContents.send('theme:change', store.get('theme'));
})
我正在尝试mainWindow.on('dom-ready')
,所以它不起作用。