Due to its effectiveness, it has been used by companies such as Microsoft, Tesla and Instagram in some of their apps, since it allows the applications created with it to be executed on both Android and iOS without having two separate projects in two different programming languages.
Code reusability: React Native's ability to reuse code for two platforms results in less development time and makes it easier to quickly publish updates.
An extensive development community: since React's native components are open source, it opens up the possibility of having many more updates and finding more information about the platform.
Developing with React Native is low cost: being a cross-platform framework, the cost of developing an application with it is lower than doing it with another technology. You don't need two separate teams to handle Android and iOS, even if you already use React on the web you already have an approach to mobile development.
Performance similar to native: React Native by not converting the code and connecting to native components, achieves a performance similar to apps created by Java or Swift, this means that the speed of the app is not affected in the multiplatform development process.
Lacks some custom modules: Even though React Native was created several years ago, it still lacks some custom modules. Sometimes when some functionality is needed that is not yet supported, three separate code bases may need to be run: one for React Native, one for Android, and one for iOS, rather than just one.
Compatibility and Debugging Issues: Despite being used by large technology companies, React Native is still in a testing phase, which in practice means that developers may have problems with package compatibility or debugging tools.