It is true that not everything is wrapped, but if you run across something you need, it's not that bad to create the wrapping yourself; here's more details: https://facebook.github.io/react-native/docs/native-componen...
It is true that not everything is wrapped, but if you run across something you need, it's not that bad to create the wrapping yourself; here's more details: https://facebook.github.io/react-native/docs/native-componen...
Edit: what a beautiful example of what I'm talking about: https://github.com/facebook/react-native/issues/371
For example: if you have a list of 1,000 things, you might put them in a scroll view first; but that will lead to very bad loading and scrolling performance (it will with straight native code as well). Instead, you should use FlatList (https://facebook.github.io/react-native/docs/flatlist.html) which is built to be performant on long lists (by reusing components, etc).
There are also a few additional considerations that you don't have when writing pure native code. One example is that if you send a lot of data (like a huge image) over the JavaScript bridge, then that can really slow down app performance. There are ways to get around that however, but it can be easy to accidentally do things like that which hurt performance (and those types of slowdowns might be confusing and difficult to track down).
So yeah, it's not perfect - but it's the best cross platform development tool I've used, and most potential issues have workarounds (once you learn what's causing the issue).
Generally won't be 100% accurate to the native versions, but at least it's better than when people were writing cross platform applications in Java with the menubar at the top of the window instead of in the menubar.