Итак, код, который у меня есть в настоящее время, работает, но я получаю ошибку ESLINT prefer-template: Unexpected string concatenation
, чего я бы хотел избежать, возможно, зная правильный способ сделать это с помощью строк шаблона литералы.Template string literal внутри другого шаблона string literal
Вот код, у меня сейчас:
<div className={`${styles.dataGridHeader} ${styles['columns' + this.props.data.headers.length]}`}>
Я хочу, чтобы применить класс column1
, column2
, column3
, etc
, в зависимости от числа столбцов в отчете данных, так что я могу применить некоторые специфические стилизация этих элементов.
У меня есть работы, но есть ли способ избежать использования конкатенации и использовать только литералы шаблонов шаблонов?
Например:
<div className={`${styles.dataGridHeader} ${styles[`columns${this.props.data.headers.length}`]}`}>
Супер некрасиво, и не работает, хотелось бы более элегантное решение.
я не уверен, как это ведет себя в JSX, но в общий, хотя и не красивый, вложенные шаблонные строки должны работать. – nils
Возможно, это особенно относится к JSX, но кажется, что без использования дополнительной переменной обратные тики в выражении прекращаются друг с другом? –
Можете ли вы уточнить, что «это не работает»? Что именно не работает? Вы получили сообщение об ошибке? [Это отлично работает в Babel REPL] (https://babeljs.io/repl/#?evaluate=false&lineWrap=false&presets=es2015%2Creact&experimental=false&loose=false&spec=false&code=%3Cdiv%20className%3D%7B%60% 24% 7Bstyles.dataGridHeader% 7D% 20% 24% 7Bstyles% 5B% 60columns% 24% 7Bthis.props.data.headers.length% 7D% 60% 5D% 7D% 60% 7D% 20% 2F% 3E & площадка = истина) , –