当前位置: 首页 > news >正文

[解决方案]Antd TreeSelect/Select placeholder失效

🔎嘿,这里是慰慰👩🏻‍🎓,会发各种类型的文章,智能专业,从事前端🐾
🎉如果有帮助的话,就点个赞叭,让我开心一下!🙋🏻‍♀️ ✨也可以关注评论收藏私信⭐️
要是没有回呢,那我大概就在上班,学习,摸鱼…

背景

开发过程中发现antd的treeSelect/Select的placeholder失效
treeselect placeholder失效
以下是一些可能导致 Ant Design 的 TreeSelect/Tree 组件的 placeholder 不显示的原因以及相应的解决方法:

1. value

如果设置了 TreeSelect 的 value 属性,那么 placeholder 不会显示。
于是发现代码逻辑会让value为"“,所以其实placeholder的位置显示的是”",让人误以为它失效了。

// 👇️ value "" ❌wrong
<TreeSelect
placeholder="Select"
value={""} // 设置选中的值// 其他属性...>{/* ... */}</TreeSelect>

2. defaultValue

defaultValue和value差不多,如果设置的话就会显示defaultValue,不过他比value优先级低,在同样设置的情况下显示value。

3. 样式覆盖问题

有时自定义的样式可能会影响 Ant Design 组件的显示。确保没有对 TreeSelect/Select 组件或其父级容器应用了隐藏、透明度为零等样式。

4. Ant Design 版本问题

某些版本的 Ant Design 可能存在 bug 或问题。确保您使用的是最新的稳定版本,或者查看是否有与 placeholder 相关的已知问题。

5. 其他问题

如果上述解决方法均不适用,可以检查控制台是否有任何错误或警告信息,以帮助确定问题的原因。

在 Ant Design 的 TreeSelect /Select组件中,如果没有选中任何值,value 属性应该是 undefined。
(注意 null也不行,如果是treeSelect会显示空标签)
这通常是在初始状态或者没有进行任何选择操作时的情况。如果您设置了 value 属性为 undefined,那么 placeholder 会显示在 TreeSelect 组件上,以提醒用户进行选择。

以下是示例代码,展示了如何在 TreeSelect 组件中设置 value 属性为 undefined,以显示 placeholder:

// 👇️ correct ✅ 
import React from 'react';
import { TreeSelect } from 'antd';const { TreeNode } = TreeSelect;const treeData = [// ... 树状数据
];const MyTreeSelect = () => {const selectedValue = undefined; return (<TreeSelectshowSearchstyle={{ width: '100%' }}placeholder="Please select"value={selectedValue} // 设置 value 为 undefinedtreeData={treeData}/>);
};export default MyTreeSelect;

在这个示例中,selectedValue 被设置为 undefined,因此 TreeSelect 组件会显示 placeholder。

题外话:

看了下antd的源码,其实用的是rc-tree-select,如果需要的话可以去看下

一些思考
在解决bug的时候,有的时候并没有发散思维,比如在解决这个问题的时候,更多考虑的是placeholder,然而问题根源是value,记录一下,以后提醒自己

推荐阅读:

▶K均值聚类 k-means 对表内数据进行聚类,结果输出散点图

▶[CSS]超详细解决方案:z-index的值很大却在下面?

▶《机器学习实战》 Logistic回归预测患有疝气病的马的存活问题

参考链接
  • Antd:https://4x.ant.design/components/tree-select-cn/#header
  • rc-tree-select :https://www.npmjs.com/package/rc-tree-select?activeTab=code
http://www.lryc.cn/news/137153.html

相关文章:

  • 微人事 部门管理 模块 (十五)
  • 【Terraform学习】使用 Terraform 从 EC2 实例访问 S3 存储桶(Terraform-AWS最佳实战学习)
  • ZDRE6VP4-1X/50MG24K4V比例压力阀放大器
  • 纠缠辅助的量子网络:原理、技术、发展与挑战
  • React Native 可触摸组件基础知识
  • 用户、权限和Vim编辑器
  • git版本管理加合并笔记
  • Failed to load property source from location ‘classpath:/application.yml‘
  • Ajax复习
  • 里式替换原则(LSP)
  • mysql------做主从复制,读写分离
  • Anaconda虚拟环境跨系统迁移
  • 第四章 IRIS 编程简介 - Macros
  • 大厂考核重点:mysql索引面试题
  • MySQL使用binlog日志做数据恢复
  • USB Type-C端口集成式ESD静电保护方案 安全低成本
  • Shiro学习总结
  • AS中回退git历史版本并删除历史提交记录
  • 线性代数的学习和整理5: 矩阵的加减乘除及其几何意义
  • sqlsugar 使用TNS连接oracle
  • 用python解压zip文件
  • 代码随想录22| 216.组合总和III, 17.电话号码的字母组合
  • ITIL4—战略与指导
  • 【Spring】Spring循环依赖(超重要!!)
  • 数据分析之路应该是就此开启了
  • win10如何配置jdk环境变量
  • pm4py使用指南(非机翻)
  • ChatGPT帮助提升工作效率和质量:完成时间下降40%,质量评分上升 18%
  • 第二章 搜索
  • transform_train.json文件解析