javascript - 根据 "map"REACT/Materialui 上单选按钮的键设置对象的颜色

标签 javascript reactjs ecmascript-6

所以我坚持这个我有两个对象:

options = {'Not Ok':'Not Ok', 'Watch':'Watch', 'Ok':'Ok'};
choice_colors = {'Ok':'green', 'Not Ok':'red', 'Watch':'yellow'};

我正在使用 map 函数生成单选按钮并引用 Material UI

    let choices = _map(options, function(choice, key){  
 return  <FormControlLabel key={key}
 id={key}
 value={key+''}
 control={<Radio />}
 label="" 
/>;

我正在从 control={<Radio />} 获得所需的输出 3 个单选按钮

但现在我想根据它们的键值为它们每个设置颜色,例如: 第一个单选按钮有键 'ok 然后它的颜色应该是“绿色”引用来自

choice_colors = {'Ok':'green', 'Not Ok':"red", 'Watch':'yellow'};

我试过了

control={<Radio style={{color:'red'}} />}   

将红色传递给所有三个 radio

control={<Radio style={{color:`${key==="Ok" ? red : ' '}`}} />}  

上面没有给出所需的输出,因为我无法添加多个支票

提前致谢!!

最佳答案

您可以像这样在单选样式属性中使用 choice_colors 字典:

const options = {'Not Ok':'Not Ok', 'Watch':'Watch', 'Ok':'Ok'};
const choice_colors = {'Ok':'green', 'Not Ok':'red', 'Watch':'yellow'};

let choices = _map(options, function(choice, key) {  
 return (
   <FormControlLabel key={key}
     id={key}
     value={key+''}
     control={<Radio style={{ color: choice_colors[key] }} />}
     label="" 
   />
 );
});

关于javascript - 根据 "map"REACT/Materialui 上单选按钮的键设置对象的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59424768/

相关文章:

javascript - [Tooltipster Plugin]- 知道div是否已经有tooltipster

reactjs - 使用 useEffect 结合 Axios 获取 API 数据返回 null - 如何处理?

javascript - 无法在 javascript 中显示叠加层,但可以在 jquery 中显示

javascript - 传递元素子项的未记录方法 : as attributes instead of explicit children

javascript - 对象赋值的嵌套解构

javascript - 数组创建,为什么会这样?

javascript - 在 Controller 中传递 html 字符串并放入 .html (Angular js)

javascript - Mongoose .save 恢复到原始值

javascript - TableRow Material-UI 之间的间距

javascript - React : this. 函数不是函数