Both the platforms support the development of apps for Android, iOS, and Windows. React native goes one step ahead by supporting Universal Windows platform and not just Windows Phone Mobile platform. It is important to understand the differences between the two platforms before you can choose anyone to get your job done.
There are fundamental differences between React Native and Apache Cordova. React is used for web application development while React Native is used for creating a native mobile application based on the website. There are a lot of similarities that the frameworks share but there are a lot of differences too. That is why you cannot turn a React web project into a mobile application in React Native just like that. Whereas, Apache Cordova provides the exact opposite scenario and lets the developers turn a web application into a Cordova application of mobiles by reusing as much code as possible for all mobile platforms. React Native does not allow sharing of code across multiple platforms seamlessly.
First, it is important to understand the difference between native and hybrid app. Native apps represent those apps that are inspired by a common codebase but they have different code bases for different platforms. In other words, there are different codebase development required for a website and its native apps for Android, iOS, Windows separately. In hybrid apps, the same codebase of the website is used it all the other apps. The latter is time-saving and more efficient.
Since React Native offers the feature to develop apps separately for different applications, naturally, the look and feel of the apps will be more native to a particular platform. But Cordova’s apps are more like browser-based as the same codebase is used in the applications. The look and feel are pretty much the same for different platforms. React Native follows the policy of learning once and write anywhere whereas Cordova is based on write once and run anywhere. The former reduces the chances of code reusability to a greater extent while Cordova is all about code reusability and making things as simple as it can get.
As you have understood that Apache Cordova and React Native may be serving the same purpose but they have different approaches. This makes them suitable for different applications. You should use Cordova when you want hybrid app made from your website and when your website is the prime source of traffic and apps are just for following the trend of the industry. You should prefer Cordova when you are developing single page website and app and you intend to deploy the app to as many platforms as possible and check the response. When you have less budget, fewer resources and less time, Cordova is the perfect solution for you.
When the design of the app matters to you and you want to give users of different platforms different UI that looks more native to the platform, React Native is the best option. When the main focus is your mobile app as you are likely to get more mobile traffic than web traffic and the performance of the apps matter to you, React Native has no alternative.