Join egghead, unlock knowledge.

Want more egghead?

This lesson is for members. Join us? Get access to all 3,000+ tutorials + a community with expert developers around the world.

Unlock This Lesson
Become a member
to unlock all features

Level Up!

Access all courses & lessons on egghead today and lock-in your price for life.


    Use Prop Collections with Render Props


    Sometimes you have common use cases that require common props to be applied to certain elements. You can collect these props into an object for users to simply apply to their elements and we'll see how to do that in this lesson.



    Become a Member to view code

    You must be a Pro Member to view code

    Access all courses and lessons, track your progress, gain confidence and expertise.

    Become a Member
    and unlock code for this lesson
    orLog In




    Instructor: Often, users of the component that exposes our render prop API will have common use cases. For example, pretty much every user of the toggle component here is going to want to render a button that can toggle the state.

    Here, we have two. Our API is going to change slightly so we can support this common use case. We are going to expose a toggler props object, which can be spread across any toggler button that our consumers want to render.

    We are passing this.getStateAndHelpers to this.props.children. Let's go ahead and add a toggler props object here. This is going to have an OnClick handler for this.toggle and aria pressed is this.state.on.

    Now, this functionality totally works. The consumer of our API doesn't need to concern themselves about what it takes to wire up these two buttons to be togglers and this toggle component.

    In the future, we could change onClick to onKeyDown, if that made more sense. That could be an implementation detail of the toggle component. It allows consumers to apply the toggler props object to any button that they are rendering which fits this use case.