[英]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.