React Native is fairly new entrance to the cross development platform paradigm than its counterparts such as Ionic and Xamarin.

Every technology has limitations and so does React Native.

Following are some of the common limitations:

Bridge Serialisation – React Native consists of a bridging concept between the two components namely native component and java script component. This costs heavily to developers in some cases thereby preventing from sharing memory between JS and Native component.

Single threadedness – React Native is based on Javascript. This means that any code written in javascript need to be executed only in JS realm. At times, there are problems when we tend to do any meaningful work in JS context which is a limitation in itself.

Heavily depended on third party libraries – RN relies heavily on third part libraries. That said, it is not always beneficial to rely on third party as there is no warranty when these libraries will become outdated in future.

No support for parallel threading or Multi-processing – A single JavaScript thread in React Native makes it impossible to implement two different processes in parallel. For instance, you can’t perform live chat with video streaming.

Overly Web focused – React Native is overly web focused. That said, it is a threatening point for most of native developers. It is a limitation since we can expect a common platform for this.

Mixed Gesture systems – React Native possess some mixed gesture system as of now. For instance gestures such as Touchable and Panresponder lies in JS realm and on the other hand, gesture such as scroll view implementation is made to implement in native realm.

Though, React Native gesture handler is improving on this but overall experience is not at par when being compared to native apps.