Make Enhanced React Components with Higher Order Components
The state shared between our toggle components is implicit because it lives inside context and is not easily accessible. In this lesson, we'll make a Higher Order Component (HOC) factory function which will allow the user to access that implicit state in their own components. Higher Order Components take a component and render a new component with some enhanced behaviors, in this case, the toggle context is added to the returned component. This factory component can get rid of duplicated code caused by needing to declare
contextTypes on each component that needs it. Now we can wrap the component with
withToggle and destructure
toggle from the props.