Q: What are the faults of using Inheritance Inversion HoC pattern in React I'm particularly interested in using Inheritance Inversion when doing conditional rendering in React, thanks to the accessibility of parent component via this.
Say I have a withLabel HOC, that takes an Input component and wrap a label outside of it, if the label is provided. So the API would look something like this: 
const TextInputWithLabel = withLabel(TextInput)
<TextInputWithLabel label="foo" id="bar"/>
<TextInputWithLabel />

that respectively returns
 <label htmlFor="bar">
     foo
     <input type="text" id="bar"/>
 </label>

and
<input type="text"/>

While I've heard some people don't like it, they couldn't give me compelling reason. 
Do you have any reasons against using II in a medium/large React code base? I'm looking for example where using II is not needed, or an explaination of why I should not use II in this particular case.
