【发布时间】:2018-09-21 17:20:37
【问题描述】:
我有一个包含在锚链接中并具有悬停样式的组件。我需要能够有条件地呈现 div 上的 channel.url 链接,如果数据中有一个可用的 url 用于已循环的特定元素。
我尝试检查 channel.url 的长度是否大于 0,但我的逻辑不起作用。最后,它应该只是,如果循环通过的特定项目在其数据对象中没有 url,它将根本没有应用锚链接。
<ul>
{items.children.map((channel, i) => (
(channel, i) =>
channel.url ? (
<a href={channel.url} target="_blank">
<FeaturedApps />
</a>
) : (
<FeaturedApps />
)
)}
))}
</ul>
更新
感谢 Ethan,我的逻辑正常了。试图清理它并将 li 移动到它自己的组件,但在传递 icon 时遇到问题。
组件
const FeaturedApps = ({ iconName, className }) => {
<li>
<IconForChannel iconName={channel.icon} className={classes.icon} />
<span className={classes.channelName}>
{channel.name}{" "}
<Icon className={classes.nameIcon} name={channel.nameicon} size={12} />
</span>
</li>;
};
带逻辑的循环
<ul>
{items.children.map((channel, i) => (
(channel, i) =>
channel.url ? (
<a href={channel.url} target="_blank">
<FeaturedApps />
</a>
) : (
<FeaturedApps />
)
)}
))}
</ul>
【问题讨论】:
-
React是否应该只将lis 作为ul的子级。 “允许内容零个或多个- 元素,而这些元素通常包含嵌套的
- 或
- 元素。”
- 元素,而这些元素通常包含嵌套的
标签: reactjs