【避坑指“难”】Antd Cascader实现悬浮提示Tooltip功能

61 篇文章 2 订阅
12 篇文章 0 订阅

Antd文档看了几圈下来,没有给出直接配置悬浮提示Tooltip的入口,该功能和自定义新增功能差不多(【避坑指“难”】Antd Cascader实现自定义新增功能),需要重新修改下渲染逻辑。

核心代码

1、 对Cascader中的options进行遍历操作

 options={handleCascaderTooltips(options)}

handleCascaderTooltips()方法

export const handleCascaderTooltips = (opt: any) => {
  if (opt && opt.length) {
    opt.forEach((item: any) => {
      if (item.children && item.children.length) {
        item.fieldNames = item.value;
        item.children.forEach((child: any) => {
          let tempObj = {};
          tempObj = {
            label: (
              <Tooltip title={child.typeReferenceName ? child.typeReferenceName.split('.')[2] : ''}>
                {child.label}
              </Tooltip>
            ),
            value: child.value,
            fieldNames: child.value,
          };
          Object.assign(child, tempObj);
          if (child.children && child.children.length) {
            handleCascaderTooltips(child.children);
          }
        });
      } else {
        let tempObj = {};
        tempObj = {
          label: (
            <Tooltip title={item.typeReferenceName ? item.typeReferenceName.split('.')[2] : ''}>
              {item.label}
            </Tooltip>
          ),
          value: item.value,
          fieldNames: item.value,
        };
        Object.assign(item, tempObj);
      }
    });
  }
  return opt;
};

效果如下:
在这里插入图片描述

2、自定义Cascader中的displayRender的渲染逻辑

 displayRender={displayRender}
  const displayRender = (label: any, selectedOptions: any) => {
    const toolText = selectedOptions[selectedOptions.length - 1].typeReferenceName
      ? selectedOptions[selectedOptions.length - 1].typeReferenceName.split('.')[2]
      : 'String';
    return <Tooltip title={() => toolText}>{label[label.length - 1]}</Tooltip>;
  };

效果如下:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰卤工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值