javascript - 如何将字符串更改为带有枚举的整数?反应JS
问题描述
我有个问题。我有相当大的多步表单,我将字符串分配给状态,事情是,我的后端(我的朋友负责它)采用整数。我听说可以将字符串更改为整数,这样我就可以成功地向后端发送请求而不会出现错误 400。状态如下所示:
state = {
selectMode: "",
selectCurrentDivision: "",
selectCurrentTier: "",
selectFutureDivision: "",
selectFutureTier: "",
TypeOfService: "",
Extras: ""
}
我如何使用枚举将特定字符串分配给特定数字?例如:FirstMode = 1、SecondMode = 2、ThirdMode = 3
解决方案
如果您需要枚举的字符串和 int 值,您可以像这样映射打字稿枚举:
enum Mode {
First = 'FirstMode',
Second = 'SecondMode',
Third = 'ThirdMode',
}
const modeToInt: { [K in Mode]: number} = {
[Mode.First]: 1,
[Mode.Second]: 2,
[Mode.Third]: 3,
}
function fetchAPI(mode: Mode) {
const n = modeToInt[mode]
return `https://example.org/${n}`
}
const state: { mode: Mode } = {
mode: Mode.First,
}
console.log(state.mode) // FirstMode
console.log(fetchAPI(state.mode)) // 1
如果您只需要数字表示,只需直接使用数字enum Mode
而不是字符串即可。
推荐阅读
- java - 当我们杰克逊数据绑定时如何获取 Pojo 名称引用的 Json 对象
- debugging - VS2017 代码更改不影响 .exe 文件
- c++ - 在 C++17 中使用 const std::string& 参数是否有意义?
- nginx - 无法在 NGINX 中提供 base64 ttf 字体
- node.js - 使用自定义过滤器从多个表中获取 Mongodb 数据
- ios - iPhone 拒绝了发布请求。内部启动错误:进程启动失败:未指定
- yocto - QA 问题:libvncserver:文件/目录已安装但未在任何软件包中提供:
- jquery - Rails 6 + Webpack + jQuery 刷新时不保存更改
- here-api - HERE API:Transit Route API 步行折线?
- linux - 如何确定 Rust 中进程的有效用户 ID?