I'm writing a React Native component for a library and I want users to be able to style it using the style
property, just like React.View
and other built-in components.
However, since my component is actually made up of a few nested views, I need to do some calculations to figure out what styling to put on the inner ones. For example, I might need to adjust the sizing of an image based upon the thickness of a border around it, or adjust a highlight color based upon the given text color, or in some other way infer some piece of styling from another piece of styling.
To do this, I need to be able to extract the actual CSS properties (like borderWidth: 2
or backgroundColor: 'pink'
) out of whatever gets passed as the style
prop. This is fine as long as it comes as a plain object, but it may also be the result of a call to React.StyleSheet.create
. This seems to be an opaque object with all selectors simply mapped to numeric IDs.
How can I resolve these and get the actual CSS properties, in order to do anything more complicated with them than simply passing them straight on to a View
?