首页 > 解决方案 > 如何将字符串更改为带有枚举的整数?反应JS

问题描述

我有个问题。我有相当大的多步表单,我将字符串分配给状态,事情是,我的后端(我的朋友负责它)采用整数。我听说可以将字符串更改为整数,这样我就可以成功地向后端发送请求而不会出现错误 400。状态如下所示:

state = {
selectMode: "",
selectCurrentDivision: "",
selectCurrentTier: "",
selectFutureDivision: "",
selectFutureTier: "",
TypeOfService: "",
Extras: ""
}

我如何使用枚举将特定字符串分配给特定数字?例如:FirstMode = 1、SecondMode = 2、ThirdMode = 3

标签: javascriptreactjsenums

解决方案


如果您需要枚举的字符串和 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而不是字符串即可。


推荐阅读