I have an electron app and I'm trying to use ReactJs with it. I have code in main.js that sends some data on dom-ready event:
mainWindow.webContents.on('dom-ready', function () {
dao.getIncomes(function (data) {
mainWindow.webContents.send('income-data', data);
});
}
Then I have React component, where I'm trying to set a listener for this event:
useEffect(() => {
ipcRenderer.on('income-data', function (event, data) {
// some code
});
}, []);
Sometimes, a component init this effect only when the event has already sent. And listener doesn't receive this data.
How do I set the listener correctly in this case? O may be I should send events later, on some other event, instead of dom-ready
Thank you.
I think first you should tell the electron the function in effect is being Execute。
const { ipcMain } = require('electron')
ipcMain.on('react-effect-executed', (event, arg) => {
dao.getIncomes(function (data) {
mainWindow.webContents.send('income-data', data);
});
})
useEffect(() => {
ipcRenderer.send('react-effect-executed', '');
ipcRenderer.on('income-data', function (event, data) {
// some code
});
}, []);