javascript - 将枚举映射到值
问题描述
我正在使用徽章组件
<Badge statusColour={value} label={value} />
从 API 中,我得到一个具有以下枚举的状态:
enum Status {
Requested = 'Requested',
Approved = 'Approved',
Declined = 'Declined',
}
Badge 组件 statusColour 属性仅采用以下颜色字符串:“attention”、“resolved”、“rejected”。
每个 Status 枚举都有它对应的 statusColour
Requested = 'attention',
Approved = 'resolved',
Declined = 'rejected',
有没有办法将 Status 枚举映射到颜色字符串,以便当我像这样使用 Badge 组件时:
const value = Status.Requested
<Badge statusColour={value} label={value} />
status 中的值是:'attention'
标签中的值为:“已请求”
ps 我正在使用 TypeScript。
解决方案
StatusColor[value]
您可以通过索引状态颜色枚举(即)来查找它。
完整示例
enum Status {
Requested = 'Requested',
Approved = 'Approved',
Declined = 'Declined',
}
enum StatusColor {
Requested = 'attention',
Approved = 'resolved',
Declined = 'rejected',
}
const valueToColor = (value: Status): StatusColor => StatusColor[value];
console.log(valueToColor(Status.Requested)); // attention
推荐阅读
- xslt - 在 for-each 期间控制开始和停止位置
- ios - 加载 StoryBoard 时出现问题
- javascript - 带有 chrome 扩展的网页抓取
- reactjs - Router.back() 在隐身模式或链接来自不同来源时不起作用
- android - 适用于 Android 智能功能手机的软键
- regex - Matlab 正则表达式 ${numberFun($4)} - 'char' 类型的输入参数的未定义函数 'numberFun'
- php - 在 localhost Linux 上使用 XAMPP 时,如何将 PHP 常量 __DIR__ 与 `header('LOCATION:'.__DIR__.'/file.php');` 一起使用?
- ios - Firebase .observe() 更新值时,Swift Diffable 数据源将崩溃
- reflection - 当它是一个 let 绑定但作为 lambda 工作时,命令处理程序接收到错误的参数
- flutter - Flutter:使用 Visual Studio 代码。共享首选项文件在哪里?