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
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
.
le meilleur moyen de concaténer les accessoires/variables:
var sample = "test";
var result = `this is just a ${sample}`;
//this is just a test