Changing nature of development
React Native is still under development and is largely unstable. The current version is 0.57. With every update, some things break while others get fixed. When that happens, a lot of outdated packages break. This is when a developer has to fork the package and figure out the solution by himself.
Inconsistencies between iOS and Android
There are so many components which behave differently between the two platforms simply because of how the two platforms are different at the core. Anyone who has been using React Native for a while would suggest developing both platforms in parallel.
Your CSS knowledge will help you, no doubt! But then again there are things which will work on iOS but not on Android. Usually, you can use alternative styling to display the UI elements the same way (or close enough) which can present you a similar effect though. For example, shadows work in iOS but you have to use elevation in Android.
Documentation
To my mind, state management is not as extensive or well arranged as it should be, plus you don't find all your answers with a simple Google search. You may have to visit GitHub issues to find answers and also to realize that the bug you are facing is many months into the discussion with no potential solution.
React has its own inbuilt state management, but it is not suitable for large projects in most cases.