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

时间:2018-05-25 16:17:54

标签: javascript reactjs jsx template-literals

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

代码看起来像这样:

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

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

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

使用转义的刻度我收到以下错误消息:

  

错误:预期的SOMELINK但没有提供

没有,我得到:

  

意外的令牌,预期&#34;,&#34;

我该如何处理?

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

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

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

5 个答案:

答案 0 :(得分:2)

我认为你过度复杂了。如果您只需要维护SOMELINK的值,则应该可以使用:

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

答案 1 :(得分:1)

你可以这样做:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

试试这个

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

我认为你还需要让路线相对

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

答案 4 :(得分:-1)

我不知道这是否有帮助,您不应忘记在SOMELINK URL之前添加http://或https://前缀