2016-11-24 2 views
5

gibt es eine Möglichkeit, Methodenparameter-Destrukturierung zu erreichen, aber auch Methodenparameter abrufen zu können.Methodenparameter: Destrukturierung + Originalparameter beibehalten (ReactJS-Komponente)

Im Rahmen einer React Anwendung mit staatenlos Komponenten, würde Ich mag Lage seines

const MyComponent = (props) => { 
    const {prop1, prop2} = props; 
    return (
    <div className={prop1 + '-' + prop2}> 
     <Child {...props}/> 
    </div> 
) 
} 

mit einer prägnanten Syntax zu ersetzen wie

const MyComponent = (props: {prop1, prop2}) (
    <div className={prop1 + '-' + prop2}> 
    <Child {...props}/> 
    </div> 
) 

Gibt es eine Syntax wie die verfügbar?

+0

eine solche Syntax nicht existiert, meines Wissens – naomik

Antwort

0

haben wir diese:

const MyComponent = ({ prop1, prop2, ...rest }) (
    <div className={prop1 + '-' + prop2}> 
    <Child prop1={prop1} prop2={prop2} {...rest} /> 
    </div> 
) 
+0

@ free- Seele, danke für das Redigieren, aber es ist nicht wirklich prägnanter als die anfängliche Implementierung und wird weniger prägnant, wenn ich mehr Parameter destrukturiere –

+0

das stimmt, stimme ich zu. –

2

Wenn Sie Ihre Komponente als function definieren, können Sie arguments Objekt verwenden:

function MyComponent({ prop1, prop2 }) (
    <div className={prop1 + '-' + prop2}> 
    <Child {...arguments[0]}/> 
    </div> 
) 
+1

Das ist eine nette Idee, aber gibt es nicht etwas, das ich idiomatischer machen kann? –