I prefer to use one reducer per provider. If there are multiple cases where I need global state I usually create multiple providers.
(e.g. a provider for notifications and one provider for a todo list or something like that. Usually their domain is decoupled and components don't need to access both providers)
For each global state I usually also create two providers in itself. One for the actual state from the reducer and one for the dispatch. This way components who simply want to trigger an action won't update when the state changes. Although that's actually an unnecessary optimiziation for most react applications.