Объединение переменных и строк в 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.