Something that:
- Can fetch JSON according to criteria from an API
- Caches stuff locally (just in memory, or in local storage) in case of duplicate calls
- Deals with multiple concurrent calls, and merge them (e.g. fetching 1 and then 2,3,4 before 1 finishes -> either cancel 1, or wait until it finishes, and then fetch only the last requested item.
- And all the stuff I can't think about right now, like cancellation and timeouts
Plug your pure component into one of these, tell it about your API, and you're done. It's really error prone to write these containers yourself. And I think Redux doesn't really help much with Ajax.