javascript - 如何在react.js中向变量名添加另一个变量值

标签 javascript reactjs

    const healthItemStyle={
        backgroundColor:'green'
    };

    const warningItemStyle={
        backgroundColor:'yellow'
    };

    const errorItemStyle={
        backgroundColor:'red'
    };

    const scenario  = ['AppPulse Active','AppPulse Mobile','AppPulse Trace','BSM-Login','Service Portal'];
    const scenarioHealth  = ['health','warning','health','health','error'];

    const items=scenario.map((item,index)=>{
        return(
            <ListItem style={`${scenarioHealth[index]}ItemStyle`}>
                <ListItemText primary={item} secondary={scenarioHealth[index]}/>
            </ListItem>
        )
    });

如上面的代码所示,我希望能够动态生成标签样式属性的变量名。 我已经尝试了很多,例如 ${scenarioHealth[index]}ItemStyle 但显然这是行不通的。那请问大家有什么好的办法吗?

最佳答案

用方括号括起来以使用 computed property并将所有 *ItemSyle 包含在对象中:

const allStyles = {
  healthItemStyle: {...},
  ...
}

<ListItem style={allStyles[`${scenarioHealth[index]}ItemStyle`]}>

这只是一个example sandbox .

关于javascript - 如何在react.js中向变量名添加另一个变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53605693/

相关文章:

javascript - 多次点击jquery后更改多个按钮的颜色

javascript - 我可以在渲染之前对 JSX 中的元素进行计数吗?

node.js - React 中的模态不起作用。显示错误

javascript - 将应用程序作为小部件加载到客户网站上的容器中

reactjs - 向下滚动时 react native 淡入右/左 View

javascript - 当 React 中 ref.current 发生变化时收到通知

javascript - 将这 5 行 JavaScript 代码转换为 cURL?

javascript - 如何更改 AngularJS 中的一次性绑定(bind)数据?

javascript - tree.nodeSize() 在 D3 TreeMap 中不起作用节点之间的空间

javascript - Object.fromEntries 仅在 iOS 上可用? ( react native - 不是网络)