我想表明“我阅读并同意隐私政策。隐私政策。”文本和“隐私政策”部分必须是一个链接。
我在下面尝试但是输出是“我读并同意[对象对象]。”
const privacyLink = <a href="">Privacy Policy</a>;
{`I read and agree to the ${privacyLink}`}
如何使用字符串模板执行此操作?
答案 0 :(得分:4)
privacyLink
缺少引号。模板文字语法不正确。将privacyLink
定义为字符串,定义包含privacyLink
的单独模板文字。
const privacyLink = "<a href=>Privacy Policy</a>";
const template = `I read and agree to the ${privacyLink}`;
document.body.innerHTML += template;
&#13;
或只是将privacyLink
定义为字符串并使用+=
运算符和.innerHTML
设置.innerHTML
document
const privacyLink = "I read and agree to the <a href=>Privacy Policy</a>";
document.body.innerHTML += privacyLink;
&#13;
答案 1 :(得分:3)
您的问题是缺少JSX标记,但您显然正在使用JSX语法,因此我将基于该解释来回答它。
当你编写JSX时,你实际上是在告诉你的转换器创建一个函数,例如如果你在反应中使用JSX,那么
<a href="">Privacy Policy</a>
是
React.createElement('a', { href: '' }, 'Privacy Policy');
createElement返回对象,这是你的字符串模板中显示的内容。
您可以使用字符串模板构建字符串,因此${}
中包含的任何内容都必须是字符串,否则它将被转换为字符串。
您应该继续使用JSX语法来编写您想要包含另一个JSX元素的任何内容。这可能有点棘手,因为任何元素树都需要有一个根元素。通常,您使用<span>
非常安全,因此在这种情况下:
<span>I read and agree to the {privacyLink}</span>