After I switched to a 3 layer architecture (1. root component, 2. screen components, 3. ui components) I just had to gather data asynchronously in the screens and pass it into the UIs via props and that was it. No spaghetti, no Actions/Reducers.
I'm not saying this works for all apps, but I got pretty far with it.
I'm not saying this works for all apps, but I got pretty far with it.