【发布时间】:2021-01-28 08:15:26
【问题描述】:
我正在创建一个选项卡导航器,它监听我的数据库并呈现 5 个不同的图标,其中一个带有徽章。
当前,我正在使用 switch-case 进行此操作,以避免使用不同的道具返回相同的组件 5 次。但事实是,它看起来并不专业。有什么设计模式可以重构这段代码吗?
let iconName;
let iconType = "material-community"; // app default icons from material-community
let badgeNumber;
switch (route.name) {
case "Home":
iconName = "home";
break;
case "Interactions":
iconName = "heart";
badgeNumber = props.notifications;
break;
case "Camera":
iconName = "camera";
break;
case "Search":
iconName = "search";
iconType = "material";
break;
case "Profile":
iconName = "person";
iconType = "material";
break;
}
return (
<BadgedIcon
number={badgeNumber}
name={iconName}
type={iconType}
color={color}
size={24}
badgeStyle={styles.interactionsBadge}
/>
);
【问题讨论】:
标签: javascript reactjs design-patterns coding-style refactoring