There are as many approaches as there are people. Some will work for one, some won't, it's fine.
The way I have usually been learning, and this is what I've seen others implement successfully too, is to learn by doing.
Learn the basics. Usually the official docs are a great place to get started. Maybe follow an official tutorial. DO NOT start running around and learning about a myriad of other libraries — Redux, Relay, React-Router, GraphQL, this that and that.
Build a toy project. (If you're not the "idea person", well, neither am I! And yet, there are ways to come up with an idea: goshakkk.name/learning-project-ideas) You will learn insane amounts of knowledge in this phase, things will "connect" and start to fit in in your head. Doing only tutorials that hand-walk you the entire time does not give you this, they kind of show you a thing, but you have no freakin' idea how and why it works.
While building a project, you WILL get stuck at times, and it's cool, you're not alone in that. Try to help yourself first. Do the researchin'. Try to frame your problem differently and see if it makes the googling (or plain gathering the solution by yourself!) easier. Even writing it down in words can help you see something that you were missing under your nose up to this point.
Do not obsess with libraries. Don't run around dropping X and Y and Z into your project randomly. Try to do as much as possible by yourself and only then if something starts to hurt badly, consider bringing in a third party library. I've written about a more specific application of this rule in the case of state management with Redux et co: goshakkk.name/redux-vs-mobx-vs-flux-etoomanychoic… but it applies on a more general level as well.
Do not try to find a ready component for everything. This is important for two reasons. One, as a beginner, you'd want to do as much hands-down as possible. Two, each dependency is a liability and should be analyzed as such. And research and such takes time, and often, it's more time effective to just write your own from scratch. Especially in cases when implementing something overly specific to your app.
Those are just a few points that popped up immediately. Feel free to reply or ask something specific.
(Update: I've published a post that further touches on some of the points of this answer goshakkk.name/next-steps-official-react-tutorial and goshakkk.name/no-tutorial-for-everything)