简体   繁体   English

无法在react.js中的模板字符串中呈现html标签

[英]Can't render html tags in a template string in react.js

Googled it but still can't realize how to render html tags in a template string in React: 用谷歌搜索,但仍然无法实现如何在React中的模板字符串中呈现html标签:

return (
  <p className="text-left m-3">
     {this.state.movies ? `Showing <strong>`${this.state.movies.length}</strong`> : 
                          `DB is empty`
     }
  </p>
);

Is there any elegant "react way" to fix it? 是否有任何优雅的“反应方式”来解决?

You can simply make use of span to wrap the elements instead of having them returned as a string 您可以简单地使用span来包装元素,而不用将它们作为字符串返回

return (
  <p className="text-left m-3">
     {this.state.movies ? <span>Showing <strong>{this.state.movies.length}</strong></span> : 
                          <span>DB is empty</span>
     }
  </p>
);

Few things you are doing wrong in your code. 您在代码中做错的事情很少。 1. Template literals do not work directly in return, you need to add template literals inside { test ${value} } 2. You have syntax error here ie, template literal should end after ending tag element of strong 1.模板文字不能直接作为回报,您需要在{ test ${value} }内添加模板文字。2.您此处存在语法错误,即模板文字应在标记strong的结束后结束

 `Showing <strong>`${this.state.movies.length}</strong`>

Do it this way 这样做

return (
  <p className="text-left m-3">
     {this.state.movies ? <span>{`Showing <strong>${this.state.movies.length}</strong>`}</span> : 
                          <span>{`DB is empty`}</span>
     }
  </p>
);

OR 要么

Assign template literals to a local variable and call it in return 将模板文字分配给局部变量并在返回时调用它

render(){
   const text = `Showing <strong>${this.state.movies.length}</strong>`;
   const text1 = `DB is empty`;
   return (
     <p className="text-left m-3">
     {this.state.movies ? <span>{text}</span> : <span>{text1}</span>}
     </p>
   )
}

You can simply use like this: 您可以像这样简单地使用:

return (
  <p className="text-left m-3">
     Showing 
   {this.state.movies &&
    // I would also make sure its length
     this.state.movies.length > 0 &&
     // to make sure not to print 0
     <strong>this.state.movies.length</strong> 
     || 'DB is empty'}
  </p>
);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM