Tengo un objeto que contiene múltiples accesorios clave-valor comunes, que quiero pasar a algunos jsx. Algo como esto:
const commonProps = {myProp1: 'prop1',myProp2: 'prop2'}; <MyJsx commonProps />Quiero que esto funcione como pasar accesorios individuales:
<MyJsx myProp1={commonProps.myProp1} myProp2={commonProps.myProp2}/>es posible?
es posible?
Sí, es posible, pero la forma en que lo envías no es correcta.
El significado de <MyJsx commonProps /> es:
<MyJsx commonProps={true} /> Entonces, si no especifica ningún valor, por defecto tomará true . Para pasar el objeto, debe escribirlo así:
const commonProps = {myProp1: 'prop1',myProp2: 'prop2'}; <MyJsx commonProps={commonProps} />Actualizar:
Si tiene un objeto y desea pasar todas las propiedades como accesorios separados, escríbalo así:
<MyJsx {...commonProps} />Puede usar el operador de propagación para hacer esto.
Simplemente puede hacer <MyJsx {...commonProps} />
Ahora, todas las propiedades individuales que tiene en commonProps se enviarán como accesorios individuales a MyJsx.
Necesitas usar llaves dobles, así:
messages={{tile:'Message 1'}}O para pasar muchos objetos:
messages={[{title:'Message 1', name: 'Andrew'}, {title:'Message 2', name: 'Greg'}]}Es simplemente sintaxis JS entre llaves.
Un componente final podría verse así
<Chat title="Some str" messages={[{title:'Message 1', name: 'Andrew'}, {title:'Message 2', name: 'Greg'}]} />