Vous avez presque raison, j'ai juste mal placé quelques citations. En mettant le tout entre des guillemets normaux, vous obtiendrez littéralement la chaîne de caractères suivante #demo + {this.state.id}
- vous devez indiquer quelles sont les variables et quelles sont les chaînes de caractères. Puisque tout ce qui se trouve à l'intérieur de {}
est un JSX en ligne expression que vous pouvez faire :
href={"#demo" + this.state.id}
Ceci utilisera la chaîne littérale #demo
et le concaténer à la valeur de this.state.id
. Ceci peut ensuite être appliqué à toutes les chaînes de caractères. Considérez ceci :
var text = "world";
Et ceci :
{"Hello " + text + " Andrew"}
Cela donnera :
Hello world Andrew
Vous pouvez également utiliser l'interpolation de chaînes ES6/ littéraux de modèle avec ` (backticks) et ${expr}
(expression interpolée), qui est plus proche de ce que vous semblez essayer de faire :
href={`#demo${this.state.id}`}
Cela substituera essentiellement la valeur de this.state.id
en le concaténant à #demo
. C'est équivalent à faire : "#demo" + this.state.id
.