Search code examples
reactjsjsxreact-props

Passing object as props to jsx


I have an object contains multiple common key-value props, that I want to pass on to some jsx. Something like this:

const commonProps = {myProp1: 'prop1',myProp2: 'prop2'};
<MyJsx commonProps />

I want this to function as passing individual props:

<MyJsx myProp1={commonProps.myProp1} myProp2={commonProps.myProp2}/>

Is this possible?


Solution

  • Is this possible?

    Yes its possible, but the way you are sending it is not correct.

    The meaning of <MyJsx commonProps /> is:

    <MyJsx commonProps={true} />
    

    So if you don't specify any value, by default it will take true. To pass the object, you need to write it like this:

    const commonProps = {myProp1: 'prop1',myProp2: 'prop2'};
    <MyJsx commonProps={commonProps} />
    

    Update:

    If you have an object and want to pass all the properties as separate prop, write it like this:

    <MyJsx {...commonProps} />