I think the best way to approach such a rewrite would be to migrate very gradually. Begin with your directives and convert them into React components. Then use ngReact to make them work first. This way you could backtrack easily if something is failing to work correctly in your app.
I cannot recommend enough that you watch this amazing talk by Ryan Florence on how to approach a rewrite using React: https://www.youtube.com/watch?v=BF58ZJ1ZQxY
After you convert all your directives to React this way, ideally your View layer should be now React. Next steps would be to rewrite the Angular Controllers, Models, Services etc. I recommend doing it with Redux for the controllers and plain JS modules for the services. Models would be just simple JS Objects. This would be also a great time you write some tests for the Reducers and Actions to ensure smooth migration.
Never forget to migrate very gradually so that you're in control and isolating the cause for an issue is trivial.