electron-redux icon indicating copy to clipboard operation
electron-redux copied to clipboard

Using Redux Observable to handle async leads to actions being fired twice

Open walleXD opened this issue 7 years ago • 3 comments

Hey,

I was trying to use redux-observable but the synchronous action which is fired by the async action gets fired twice.

For example, once I run increment_async action, which fires the increment action after 1000ms, the increment action is being fire twice. This only happens after setting up electron-redux

Any idea why that would be happening?

Thanks a bunch 🙏🏼

walleXD avatar Nov 15 '17 18:11 walleXD

Hey @walleXD

That's probably happening because your async action fires both on the renderer and the main thread. Have you tried aliased actions ?

hardchor avatar Nov 22 '17 19:11 hardchor

I am just firing the actions in the renderer. Should I scope them with local to avoid being run twice?

Aliased actions allow us to fire the action in the main thread but this happens in the renderer but I didn’t try to use aliased action On the main thread with redux-observable. Will report back in my findings.

walleXD avatar Nov 22 '17 19:11 walleXD

Yeah, so depending on what you're doing, your option is to either use the local option and prevent the action from being forwarded to the main thread's store, or use an aliased action to only trigger the action in the main store (which is the preferred way for actions that produce side-effects, e.g. AJAX requests etc.).

hardchor avatar Nov 24 '17 10:11 hardchor