I typically use a container component pattern where I have a Container that fetches my data and it delegates it to child components, which are usually stateless. More about that particular pattern here.
Unlike the example I linked above, I usually abstract away any fetching logic to service files that exist in a services directory.