2017-09-04 4 views
1

Lassen Sie uns sagen, dass ich eine einfache Komponente wie dieses:Ist es möglich, einen Klassennamen für benutzerdefinierte Reaktionskomponenten festzulegen?

class SimpleComponent extends React.Component 
{ 
    render() { return <p>Some text</p> } 
} 

Ist es möglich, ein className zu SimpleComponent hinzuzufügen, oder ist dies nur in HTML-DOM-Elemente beschränkt?

Zum Beispiel:

var mySimpleComponent = <SimpleComponent className="myComp"/> 

Der Grund Ich mag würde dies tun, so dass ich die Elemente innerhalb meiner benutzerdefinierten Komponente diese Art mögen kann:

.myComp > p { 
    background-color: blue; 
} 
+0

ein externes div vor dem p-Tag erstellen und geben Sie ihm einen Klassenname von .myComp –

+0

Ist dies die einzige Lösung? Ich hoffte, dass ich keine umschließenden div-Elemente für alle meine Komponenten erstellen müsste – sookie

Antwort

3

können Sie, aber Sie sollten propagieren die Stütze auf die innere Komponente. Wenn nicht, weiß es nichts davon.

class SimpleComponent extends React.Component 
{ 
    render() { return <p className={this.props.className}>Some text</p> } 
} 

Um die CSS Abfrage, die Sie erreichen möchten machen, dann sollten Sie die div in Ihrer Komponente erstellen.

class SimpleComponent extends React.Component 
{ 
    render() { return <div className={this.props.className}><p>Some text</p></div> } 
} 
+0

Ich würde unten Code vorschlagen, um das Endziel zu erreichen. Klasse SimpleComponent erweitert React.Component { render() {return

Some text

} } Wickeln Sie ein DIV-Tag um die gewünschte HTML-Markup und verwenden Sie den Klassenname prop Sie durch Ihre eigene Komponente bestanden haben. –

+0

Richtig, ich konzentrierte mich zu sehr auf den Grund, warum es nicht funktionierte. Es sollte '

Some text

' sein. – jorgonor

Verwandte Themen