【问题标题】:How to use enum to save jsx in react/typescript [closed]如何使用枚举在 react/typescript 中保存 jsx [关闭]
【发布时间】:2020-11-28 06:46:54
【问题描述】:
enum result{
    fail=(<StyleDiv>fail</StyleDiv>),
 success=(<StyleDiv>success</StyleDiv>)
}
function(){
return result.fail
}

我该怎么做? 我应该改变方法吗?

【问题讨论】:

  • 这里为什么需要枚举?您可以使用常规对象
  • 我同意@Aleksey L。只需创建一个对象并添加 'as const' 。请避免使用数字枚举,它们是不安全的。枚举也是可变的,所以你最好把它们从你的代码库中删除

标签: typescript jsx


【解决方案1】:

您需要创建一个带有键作为枚举成员的对象:

enum resultKeys {
  fail,
  success,
}

const result = {
  [resultKeys.fail]: <StyleDiv>fail</StyleDiv>,
  [resultKeys.success]: <StyleDiv>success</StyleDiv>, 
};

或者如果result 的每个成员都是相同的StyleDiv 组件,您可以只存储子元素作为结果中每个键的值:

enum resultKeys {
  fail,
  success,
}

const result = {
  [resultKeys.fail]: "fail",
  [resultKeys.success]: "success", 
};

function getStyleDiv(key: resultKeys): JSX.Element {
  return <StyleDiv>{result[key]}</StyleDiv>;
}

const fail = getStyleDiv(resultKeys.fail);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-05
    • 2019-05-29
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2017-01-28
    • 1970-01-01
    相关资源
    最近更新 更多