React -可选地在链接中包装一个项
React - Optionally wrap an item in a link
我有一个React组件,它显示标题和一些文本。我想在一个链接中选择性地包装标题(同一个组件在多个地方使用),并希望有最好的方法指导。我的组件看起来像这样:
var FeedItem = React.createClass({
renderRawMarkup: function(text) { ... },
render: function() {
var item = this.props.item,
rawBody = this.renderRawMarkup(item.body);
return (
<article className="feed-item">
<h2 className="feed-item__title">{item.title{</h2>
<div className="feed-item__body" dangerouslySetInnerHTML={rawBody} >
</div>
</article>
);
});
我是否最好为标题创建一个新组件?或者我可以在返回中使用if,例如:
<h2 className="feed-item__title">
{if (item.path) { <a href={item.path}> }}
{item.title}
{if (item.path) { </a> }}
</h2>
我是一个React新手,所以如果我从完全错误的角度来处理这个问题,我道歉!
在jsx中不能使用if
语句,但是可以使用ternary expressions
。在您的情况下,您可以使用:
<h2 className="feed-item__title">
{ item.path ? <a href={item.path}>{item.title}</a> : {item.title} }
</h2>
这在官方文档中有说明:React docs
相关文章:
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 如何制作href链接和<李>在一个包装中
- 切换一个元素并将其余元素隐藏在同一包装类下
- 如何使用jquery将每4个元素包装在一个
- 标签中
- 我怎样才能把p中的一个单词包装在a标签中呢
- jquery+调用来自另一个Javascript包装器的函数
- 当uib分页被包装在另一个指令中时,AngularJS表数据没有更新
- ES6类:在另一个函数中包装方法实现
- 如何将所有下一个元素包装到
- Jquery使用Slice将前N个元素包装成一个新元素,并将其余N个元素打包成另一个新元素
- 调用一个按钮点击,该按钮被包装在html页面内的另一个html标记中
- 最佳实践:在 AngularJS 中将一个模板包装在另一个模板中
- 为什么我们将 Angular 应用程序包装在一个函数中
- 使用 jQuery 将一个 HTML 标记包装在另一个标签中
- 使用 Jquery 将元素的一些文本包装在一个范围中
- 将对象内部的参数包装给函数是一个坏主意吗?
- 循环访问多个元素并为每个元素添加一个包装器
- 如何居中一个包装潜水和补偿滚动条
- 如何使用localstorage一次性将所有输入字段值存储在一个包装器中