It's not about "Write once, run everywhere" but rather about "Learn once, write everywhere". React-Native encourages better design patterns for UI, especially on iOS.
I don't get the "better design pattern" from that. And even worse, adding yet another piece on top of the stack (a "better language" transpiling to JS) instead of just doing "react" in the native environment?
Doing "react" in the native environment is hard, you have to fight UIKit really hard to get to a good place.
[ReactiveCocoaLayout](https://github.com/ReactiveCocoa/ReactiveCocoaLayout) is a good example of how much work it takes to get close to this pattern, but the view lifecycle as a whole (adding and removing subviews, layout passes, etc.) makes it hard.
From what I understand React-Native does this for you natively under-the-hood, but using JS as an implementation detail.
I really don't think that anyone is advocating for JS being the "better language", but rather one that has a framework (read: React.js) being used in practice which will work with native view as well.
This blog post summed it up perfectly for me: https://joshaber.github.io/2015/01/30/why-react-native-matte...