It really depends on where you want to go regarding mobile apps. React Native offers JS control over a Native UI for several platforms, including iOS and Android. That said, it still helps to know the native language/environments when you hit a wall. Frankly, I don’t and it gets, interesting to say the least.
There’s also using PhoneGap or a derivative for creating mobile running applications with JavaScript+HTML as your primary interface.
It will depend heavily on what you are wanting to create, the amount of interactivity, graphics needs, and the purpose. If you are creating a simple app with a bunch of forms, and maybe minor maps integration, then PhoneGap or React Native will be enough. If you’re trying to create a highly interactive game with many sprites on the screen and NPC controllers in play, then native per platform may be the way to go.
Another option is the Xamarin tooling for .Net (C#) that lets you target mobile platforms with C#, which compiles down to native and performs well, but the same caveats apply regarding native controls when you need something not covered.