如何在模板文字中使用模板文字(``)?

How to use template literals (``) within template literals?

我有一个非常具体的边缘情况,我需要在模板文字中使用模板文字,但无法完成。

代码看起来像这样:

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

但是我必须将它包装在一个函数中,同时保持 SOMELINK 变量的值,这会导致错误发生。我是否逃脱了蜱虫。

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

使用转义报价时,我收到以下错误消息:

Error: Expected SOMELINK but none provided

没有,我得到:

Unexpected token, expected ","

我该如何处理?

编辑:可能应该注意的是,someFunction 中传递的代码将被渲染,并且需要使用它。它最终会通过 dangerouslySetInnetHTML 传递给另一个标签。所以它看起来像这样:

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

不确定这是否相关,但 someFunction 只是对文本做了一些修改。

我认为你过于复杂了。如果你只需要维护 SOMELINK 的值,这应该有效:

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

我认为 SOMELINK 变量在那种情况下不可用。 您应该先提供 SOMELINK。

试试这个

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

我认为你还需要将路由设为相对路径

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

你可以这样做:

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