Объединение переменных и строк в React
есть ли способ включить нотацию фигурной скобки React и href
тег? Скажем, у нас есть следующее значение в состоянии:
{this.state.id}
и следующие атрибуты HTML в тег:
href="#demo1"
id="demo1"
есть ли способ я могу добавить id
состояние атрибута HTML, чтобы получить что-то вроде этого:
href={"#demo + {this.state.id}"}
что даст:
#demo1
2 ответа:
вы почти правы, просто неуместны несколько цитат. Обертывание всего этого в регулярные кавычки буквально даст вам строку
#demo + {this.state.id}
- вам нужно указать, какие переменные и какие строковые литералы. Так как ничего внутри{}
является встроенным JSX выражение, вы можете сделать:href={"#demo" + this.state.id}
это будет использовать строковый литерал
#demo
и сцепить его со значениемthis.state.id
. Это может быть применено ко всем строкам. Считать это:var text = "world";
и так:
{"Hello " + text + " Andrew"}
это даст:
Hello world Andrew
вы также можете использовать интерполяцию строк ES6/шаблон литералы С ` (обратная кавычка) и
${expr}
(интерполированное выражение), что ближе к тому, что вы, кажется, пытаетесь сделать:href={`#demo${this.state.id}`}
это будет в основном подставляем значение
this.state.id
, связывая его с#demo
. Это эквивалентно делать:"#demo" + this.state.id
.