Reactjs 在react const中使用枚举

Reactjs 在react const中使用枚举,reactjs,dictionary,enums,constants,react-props,Reactjs,Dictionary,Enums,Constants,React Props,我需要将enum值映射到1个变量,然后调用该变量并检查该枚举是否存在 render() { const { id, name, features} = this.props; } 特征将是需要根据要输入的枚举映射的变量。我会从API中得到类似的东西: {"id":"111", "name":"jack", "features":["MOUNTAIN", "HILL"]} 因此总共会有4种不同的特征:山、山、湖、鱼。 然后在需要时,我可

我需要将
enum
值映射到1个变量,然后调用该变量并检查该枚举是否存在

render() {
    const {
        id,
        name,
        features} = this.props;
}
特征将是需要根据要输入的枚举映射的变量。我会从API中得到类似的东西:

{"id":"111", "name":"jack", "features":["MOUNTAIN", "HILL"]}
因此总共会有4种不同的
特征
山、山、湖、鱼

然后在需要时,我可以检查:

if(features.mountain)
    //do stuff

如果要检查从api返回的features数组中是否包含枚举中的给定属性(例如“MOUNTAIN”),可以使用以下方法:

if(特性rayFromAPI.includes('MOUNTAIN')){
//做事
} 
如果要检查从api返回的功能是否包含功能枚举中的一个或多个属性,可以将
includes
与组合

例如,在Typescript中,您可以这样编写:

enum功能{山、山、湖、鱼}
if(对象键(功能)
.some(功能=>featuresFromApi.includes(功能))){
//做事
}
编辑

api数据中的
功能
键应该像任何其他键一样映射(
id
名称
)-而不是保存1个值,它保存一个数组。然后可以在
if
子句中使用上面建议的验证。例如:

const data = [
    {"id":"111", "name":"jack", "features":["MOUNTAIN", "HILL"]},
    {"id":"222", "name":"john", "features":["FISH", "HILL", "LAKE"]}
    {"id":"333", "name":"joe", "features":["LAKE", "HILL", "FISH"]}

    ]

    data.map(record =>{

      console.log(record.id); 
      console.log(record.name);

      if (record.features.includes('MOUNTAIN'){
          // do stuff
        }          
    })

另外,请记住,
enum
是一个在Javascript中不可用的Typescript符号,因此如果您不使用Typescript,您可以这样声明它,它的工作原理相同:

const Features =  { 
 MOUNTAIN: "MOUNTAIN",
 HILL: "HILL",
 LAKE, "LAKE",
 FISH: "FISH" 
}


谢谢您的回答,但是您如何将此枚举映射到常量变量?或者在声明
Features
时它会自己映射吗?本例中的其他变量..id,name正在映射。如果我理解这个问题,api数据中的
Features
键应该像任何其他键一样映射,它只保存任何array而不是单个值。请看我添加到问题中的“编辑”-这是否回答了您的问题?