Javascript React-嵌入HTML标记的ES6模板字符串

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><

如何在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><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}
  • )}
    谢谢你的完整解释,它非常有用,我现在知道我做错了什么。谢谢你的完整解释,它非常有用,我现在知道我做错了什么。