Wie setze ich in JSX einen Klassennamen als Zeichenfolge + {prop}?


80

Ich bin ein bisschen neu in React und versuche, einen Klassennamen als String + Prop festzulegen. Aber ich bin mir nicht sicher, wie ich es machen soll und ob das die beste Vorgehensweise ist.

Ich versuche also Folgendes zu tun, und es funktioniert offensichtlich nicht:

<a data-featherlight='string' + {this.props.data.imageUrl}>

Wie würde ich das schreiben?

Antworten:


189

Sie können die Verkettung von Zeichenfolgen verwenden

<a data-featherlight={'string' + this.props.data.imageUrl}>

oder verwenden Sie die Template stringsneue ES2015-Funktion

<a data-featherlight={ `string${this.props.data.imageUrl}` }>

4

Sie können es auch versuchen:

<a data-featherlight={'string1' + this.props.data.imageUrl + 'string2'}>

oder

<a data-featherlight={ `string1 ${this.props.data.imageUrl} string2` }>

Wenn Sie die Link-Komponente verwenden, können Sie die Verkettung folgendermaßen durchführen:

<Link to={`getting-started/${this.props.message}`}>
     <h1>Under {this.props.message}/-</h1>
</Link>

1

Soweit ich weiß, zuerst:

<a data-featherlight={'your string' + this.props.data.imageUrl}>

Zweite:

<a data-featherlight={`your string ${this.props.data.imageUrl}`}>

2
Wie unterscheidet sich das von der akzeptierten Antwort von 2016?
Arjan

0

In JSX sollten Sie für die Verkettung von className Ihre Zeichenfolge und Requisiten zwischen geschweiften Klammern "{}" haben, da geschweifte Klammern JSX bezeichnen, um alles aus JS-Sicht zu bewerten. Also solltest du es versuchen

<a data-featherlight={'string' + this.props.data.imageUrl}>

2
Wie unterscheidet sich das von der akzeptierten Antwort von 2016?
Arjan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.