Javascript React-嵌入HTML标记的ES6模板字符串
如何在ES6模板字符串中使用HTML标记? 以下是:Javascript React-嵌入HTML标记的ES6模板字符串,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,如何在ES6模板字符串中使用HTML标记? 以下是: { this.props.rule.conditions.map(e => `<li>${ e.booleanOperator } / ${ e.column }</li>`) } {this.props.rule.conditions.map(e=>`${e.booleanOperator}/${e.column}`) 仅输出纯文本: <li>Blah / Blah</li><
{ this.props.rule.conditions.map(e => `<li>${ e.booleanOperator } / ${ e.column }</li>`) }
{this.props.rule.conditions.map(e=>`${e.booleanOperator}/${e.column} `)
仅输出纯文本:
<li>Blah / Blah</li><li>Blah / Blah</li><li>Blah / Blah</li>
诸如此类 诸如此类 诸如此类
而不是实际格式化的HTML列表。它将像循环一样使用。只需将表达式放在一个${}占位符中,即可对其进行计算 例如:
{ this.props.rule.conditions.map(e => `<li>${ e.booleanOperator / e.column }</li>`) }
{this.props.rule.conditions.map(e=>`${e.booleanOperator/e.column} `)
希望这有助于只需将表达式放在一个${}占位符中,即可对其进行计算 例如:
{ this.props.rule.conditions.map(e => `<li>${ e.booleanOperator / e.column }</li>`) }
{this.props.rule.conditions.map(e=>`${e.booleanOperator/e.column} `)
希望这有帮助如果您使用普通Javascript和
.innerHTML
设置文本,则模板字符串的用法完全正确
但是,在React中,它被转换为普通字符串(HTML字符)。这是为了防止一场灾难
在这种情况下,您可以继续使用React元素。
继续,只需完全删除“`”和“$”即可
<ul>
{ this.props.rule.conditions.map(e =>
<li>{ e.booleanOperator } / { e.column }</li>
) }
</ul>
{this.props.rule.conditions.map(e=>
- {e.boolean运算符}/{e.column}
) }
现在它看起来就像你在其他地方使用的一样。这是使用React的真正美妙之处:您可以像这样跳入和跳出元素、循环和函数!如果使用普通Javascript和
.innerHTML
设置文本,则模板字符串的用法完全正确
但是,在React中,它被转换为普通字符串(HTML字符)。这是为了防止一场灾难
在这种情况下,您可以继续使用React元素。
继续,只需完全删除“`”和“$”即可
<ul>
{ this.props.rule.conditions.map(e =>
<li>{ e.booleanOperator } / { e.column }</li>
) }
</ul>
{this.props.rule.conditions.map(e=>
- {e.boolean运算符}/{e.column}
) }
现在它看起来就像你在其他地方使用的一样。这是使用React的真正美妙之处:您可以像这样跳入和跳出元素、循环和函数!react将把它全部转换为实际的HTML元素。您不需要为此使用模板字符串。您可以实现以下目标:
getMarkup = (e)=> {
return (
<li>
{e.boolenaOperator}{e.column}
</li>
)
}
{ this.props.rule.conditions.map(e => {this.getMarkup(e)} }
getMarkup=(e)=>{
返回(
{e.boolenaooperator}{e.column}
)
}
{this.props.rule.conditions.map(e=>{this.getMarkup(e)}}
您不需要为此使用模板字符串。您可以实现以下功能:
getMarkup = (e)=> {
return (
<li>
{e.boolenaOperator}{e.column}
</li>
)
}
{ this.props.rule.conditions.map(e => {this.getMarkup(e)} }
getMarkup=(e)=>{
返回(
{e.boolenaooperator}{e.column}
)
}
{this.props.rule.conditions.map(e=>{this.getMarkup(e)}}
我不确定我是否理解你所说的“干净列表”是什么意思。你根本不需要使用模板字符串。只需删除`,和$.@zero298我指的是Html格式的列表。很抱歉,我编辑了这个问题。我不确定我是否理解你所说的“干净列表”是什么意思。您根本不需要使用模板字符串。只需删除`,和$.@zero298我指的是Html格式的列表。很抱歉,我编辑了这个问题。为什么在这个问题中需要字符串文字?假设这是一个算术运算…文字用于避免使用+运算符进行concat…只需不使用`:this.props.rule.condition即可ns.map(e=>{e.booleanOperator/e.column} )}
为什么需要字符串文字?假设这是一个算术运算…文字用于避免使用+运算符进行concat…而不使用“`:this.props.rule.conditions.map(e=>{e.booleanOperator/e.column} )}
谢谢你的完整解释,它非常有用,我现在知道我做错了什么。谢谢你的完整解释,它非常有用,我现在知道我做错了什么。