javascript - 如何使徽章通知仅针对特定选项卡显示
问题描述
仅在映射反应时,如何使徽章通知仅出现在特定选项卡中
这是我的以下代码
<div className="team-management-tab-items">
{tabs.map((tab, index) => (
<div
id={editable === true ? "" : `${tab}`}
className={
activeTab === index
? "team-management-tab-item selected"
: "team-management-tab-item"
}
key={tab}
role="button"
tabIndex={tab}
>
{tab !== "Sub-Team" && (
<Badge
color="error"
badgeContent={1}
max={99}
variant="default"
>
<span className="tab-item-text">{tab}</span>
</Badge>
)}
)}
<span className="tab-item-indicator" />
</div>
))}
</div>
解决方案
我认为您目前以正确的方式完成了它,如果您想让它更具可配置性和可扩展性,您仍然可以进行更多更改。同样,它可能不是最适合您的用例,但在这种情况下采用配置驱动的方法可以在未来添加更多属性。
const TAB_CONFIG = [
{
label: "Mission",
id: "mission",
showBadge: true,
disabled: false
},
{
label: "Agreement",
id: "agreement",
showBadge: true,
disabled: false
},
{
label: "Calendar",
id: "calendar",
showBadge: true,
disabled: false
},
{
label: "Members",
id: "members",
showBadge: true,
disabled: false
},
{
label: "Sub-Team",
id: "sub-team",
showBadge: false,
disabled: false
}
]
// please use a better name, gave this name just for help
const TabsComponent = () => {
// logic to render badges
const renderBadge = (count) => (
<Badge
color="error"
badgeContent={1}
max={99}
variant="default"
>
<span className="tab-item-text">{count}</span>
</Badge>
)
// logic to render tabs
const renderTabs = () => {
return TAB_CONFIG.map(({ label, id, showBage, disabled }) => (
<div
id={editable === true ? "" : `${id}`}
className={
activeTab === id
? "team-management-tab-item selected"
: "team-management-tab-item"
}
key={id}
role="button"
tabIndex={tab}
>
{showBadge && renderBadge(id)}
<span className="tab-item-indicator" />
</div>
))
}
return (
<div className="team-management-tab-items">
{renderTabs()}
</div>
)
}
推荐阅读
- java - ReactNative:通过 NativeBridge 代码中的 findViewById 获取元素
- cobol - 被调用程序在调用程序中编写或定义变量?
- python - 如何使用 python(numpy)将日期时间从 CSV 文件添加到 x 轴?
- node.js - Teams 中的主动消息传递机器人,无需事先提及该机器人
- django - 简单地将所有用户输入数据保存在 Django 中?
- youtube - bookdown 中的 youtube 链接
- python - 如果内容中有各种标签,我如何抓取所有内容?
- nativescript - 如何从 IOS 的列表视图中删除分隔线?
- xml - 如何使用 xslt 将静态元素添加到 xml 的末尾
- javascript - 如何为评论者和查看者设置禁用选项以下载、打印和复制