当用户更改主题时,我使用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'));

但是,没有任何 react 。好像没有被发送。我要去哪里错了?本质上,需要做的是在应用程序加载到商店中的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/

10-12 15:01