Как вложить шаблоны строк в ES6?

Я получил prefer-template ошибка от эслинт. Для временного решения я изменил свой код, чтобы использовать строку шаблона внутри require функция, которая вложена в url функционировать следующим образом:

{
  background: `url(${require(`../../assets/${edge.node.name.toLowerCase()}.png` center no-repeat`)})
}

Однако это дало ошибку, очевидно. Вот код, который я использовал раньше, конкатенация знака плюс внутри require функция вместо строки шаблона.

{
  background: `url(${require('../../assets/' + edge.node.name.toLowerCase() + '.png')}) center no-repeat`
}

Можно ли определить вложенные строки шаблона?

1 ответ

Решение

Да, это возможно, но вы по какой-то причине поставили )}) часть (которая закрывает require вызов, интерполированное значение и CSS url) в неправильном месте:

{
  background: `url(${require(`../../assets/${edge.node.name.toLowerCase()}.png`)}) center no-repeat`
//                                                                             ^^^
}

Тем не менее, это, вероятно, плохая идея, поскольку она не делает код читабельным. Лучше использовать переменную:

const bgurl = require(`../../assets/${edge.node.name.toLowerCase()}.png`);
… {
  background: `url(${bgurl}) center no-repeat`
}
Другие вопросы по тегам