Nicely observed: Do not fight against the framework. It's probably better to use another library/framework than to try some ways, which worked elsewhere.
However... React changes quite too often as well. IIRC, state underwent changes from being local to global to... completely on the side. No wonder developers are confused what is The Right Way.
That said, there really aren't that many ways to program really. Structural -> OO -> Functional Programming + type system evolution is about that for non-concurrent parts of software (here "->" can also be understood as "+": practical OO languages preserved structural, etc). It's all about how to decompose code and compose functionality with it.
Also, React supports HTML-in-ProgLanguage and Proglang-in-HTML in the same syntax, so it's not new in React.
So basically, React is functional programming framework, specialized on XML (DOM) rendering, with some "hooks" for "side-effects" and other asynchronous JavaScriptisms, which changed it's state management approaches several times already.