React is a fantastic library with an incredibly helpful community, but it is not without flaws. In particular, a few things are worth keeping in mind when deciding what makes the most sense for your project.
As powerful as React is, it solves only one specific problem. For a production-ready application, there are a vast number of additional tools, often called a stack, that you will need. For example, the React Starter Kit project, one of the more popular starter projects for React, creates new projects with 102 dependencies on external libraries (as of June 2018). To build a stack like this from scratch, a team has to make dozens of choices about what trade-offs are right for that project. Although the React ecosystem is stabilizing quickly, sometimes choices need to be made for even the most foundational parts of an application like data management, how to write a component, or testing. With such a sprawling ecosystem, upgrading, enabling features, setting patterns, and just keeping up can be exhausting and time-consuming.