Как использовать литералы шаблона (``) внутри литералов шаблона? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть очень специфический крайний случай, когда мне нужно использовать литерал шаблона внутри литерала шаблона, но я не могу это сделать.

Код выглядит примерно так:

<p>Something something <a href={`${SOMELINK}/blah`}>SomeLink</a></p>

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

someFunction (`<p>Something something <a href={`${SOMELINK}/blah`}>SomeLink</a></p>`)

С экранированными галочками я получаю следующее сообщение об ошибке:

Ошибка: ожидается SOMELINK, но не предоставлено

Без, я получаю:

Неожиданный токен, ожидаемый ","

Как мне справиться с этим?

Редактировать: Вероятно, должно бытьотметил, что код, передаваемый в someFunction, будет обработан и его необходимо использовать.В конечном итоге он будет передан другому тегу через dangerouslySetInnetHTML.Так что это будет выглядеть примерно так:

<div dangerouslySetInnerHTML={{__html: someFunction(`<p>Something something <a href={`${SOMELINK}/blah`}>SomeLink</a></p>`)}}/>

Не уверен, что это уместно, но someFunction просто вносит некоторые изменения в текст.

Ответы [ 4 ]

0 голосов
/ 25 мая 2018

Вы можете сделать как:

someFunction(`<p>Something something <a href={${SOMELINK}/blah>SomeLink</a></p>`);
0 голосов
/ 25 мая 2018

Я думаю, что переменная SOMELINK в этом случае недоступна.Сначала вы должны предоставить SOMELINK.

0 голосов
/ 25 мая 2018

Попробуйте это

someFunction("<p>Something something <a href={"+`${SOMELINK}/blah`+"}>SomeLink</a></p>")

Я думаю, вам также нужно сделать маршрут относительно

"<p>Something something <a href={/"+`${SOMELINK}/blah`+"}>SomeLink</a></p>"
0 голосов
/ 25 мая 2018

Я думаю, вы слишком усложняете это.Если вам нужно только сохранить значение SOMELINK, это должно работать:

someFunction(`<p>Something something <a href="${SOMELINK}/blah">SomeLink</a></p>`)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...