web-dev-qa-db-fra.com

Concaténation de variables et de chaînes dans React

Existe-t-il un moyen d’intégrer la notation des accolades réactives de React et une balise href? Disons que nous avons la valeur suivante dans l'état:

{this.state.id}

et les attributs HTML suivants sur une balise:

href="#demo1"
id="demo1"

Est-il possible d'ajouter l'état id à l'attribut HTML pour obtenir quelque chose comme ceci:

href={"#demo + {this.state.id}"}

Ce qui donnera:

#demo1
104
lost9123193

Vous avez presque raison, juste égaré quelques citations. Entourer le tout de guillemets normaux vous donnera littéralement la chaîne #demo + {this.state.id} - vous devez indiquer quelles sont les variables et lesquelles sont les littéraux. Comme tout ce qui se trouve à l'intérieur de {} est une expression JSX intégrée , vous pouvez faire:

href={"#demo" + this.state.id}

Cela utilisera le littéral de chaîne #demo et le concaténera à la valeur de this.state.id. Cela peut ensuite être appliqué à toutes les chaînes. Considère ceci:

var text = "world";

Et ça:

{"Hello " + text + " Andrew"}

Cela donnera:

Hello world Andrew 

Vous pouvez également utiliser l'interpolation de chaîne ES6/ gabarits de modèle avec `(backticks) et ${expr} (expression interpolée), ce qui est plus proche de ce que vous semblez vouloir faire:

href={`#demo${this.state.id}`}

Ceci substituera fondamentalement la valeur de this.state.id, en la concaténant à #demo. Cela équivaut à faire: "#demo" + this.state.id.

210
Li357

le meilleur moyen de concaténer les accessoires/variables:

var sample = "test";    
var result = `this is just a ${sample}`;    
//this is just a test
27
Kevin Laurente