改KendoReactUI组件,实现多个子元素的样式不一样

文章讲述了在使用KendoReactRadioButton组件时,如何通过JavaScript动态控制选中项的样式,特别是颜色。通过检查checked状态,设置不同的borderColor和backgroundColor,实现不同严重级别显示不同颜色的效果。
摘要由CSDN通过智能技术生成

 before

 after

  1. 问题描述
    使用KendoReact RadioButton 组件,当用户选中当前项时需要显示不同颜色,试图通过找到KendoUI中对应的class name,然后修改这个class name下面的css来达到目的,但不起作用
  2. 解决办法
    用js控制style
  3. 核心代码
        const blueColor = "#268bdc";
        const orangeColor = "#f99506";
        const redColor = "#e12219";
    
        const arr = [
          {
            name: "severityList",
            displayedValue: info,
            value: Severity.Information,
            checked: severity === Severity.Information,
            style: (checked = false) => (checked ? {borderColor: blueColor, backgroundColor: blueColor} : undefined),
            id: v4(),
          },
          {
            name: "severityList",
            displayedValue: minor,
            value: Severity.Minor,
            checked: severity === Severity.Minor,
            style: (checked = false) => (checked ? {borderColor: orangeColor, backgroundColor: orangeColor} : undefined),
            id: v4(),
          },
          {
            name: "severityList",
            displayedValue: major,
            value: Severity.Major,
            checked: severity === Severity.Major,
            style: (checked = false) => (checked ? {borderColor: redColor, backgroundColor: redColor} : undefined),
            id: v4(),
          },
        ];
    
        return arr.map((e) => (
          <RadioButton
            key={e.id}
            name={e.name}
            value={e.displayedValue}
            checked={e.checked}
            label={e.displayedValue}
            style={e.style(e.checked) as React.CSSProperties | undefined}
            onChange={(e) => {
              // do something
            }}
          />
        ));

    分析

     根据checked来判断,显示不同color,然后渲染

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值