新闻详情

新闻详情

首页 / 资讯中心 / 详情

RSUITE MultiCascader 默认值设置:defaultValue 用法与级联/非级联模式实战

发布时间:2026/9/29 2:35:11来源:尧图网络
RSUITE MultiCascader 默认值设置:defaultValue 用法与级联/非级联模式实战
前端UI组件【免费下载链接】rsuite A suite of React components .项目地址https://gitcode.com/gh_mirrors/rs/rsuite点击查看免费下载导读本文聚焦 rsuite 的MultiCascader多选级联选择器组件如何通过defaultValue设置初始选中值并对比开启/关闭cascade级联模式时默认值的呈现差异。你将掌握defaultValue的传值规范数组、路径式 value、受控与非受控两种用法并结合仓库源码理解默认值如何在内部被级联补全处理以及文档示例所用的mockTreeData树数据生成方式可直接照搬到自己的项目中。defaultValue为多选级联器预设初始选中项MultiCascader是 rsuite 中用于从多级级联数据中选择多个值的组件支持多列面板逐层点选、多选复选框以及搜索。当表单需要回显历史数据或编辑场景需要预填已选项时defaultValue是最直接的入口——它只在首次渲染时生效之后组件进入非受控状态由用户操作维护内部值若希望外部完全接管值的变化则应改用valueonChange的受控写法。在 docs/pages/components/multi-cascader/fragments/default-value.md 中官方给出了完整的默认值示例import { MultiCascader } from rsuite; import { mockTreeData } from ./mock; const data mockTreeData({ limits: [3, 3, 4], labels: (layer, value, faker) { const methodName [jobArea, jobType, firstName]; return faker.person[methodName[layer]](); } }); const App () ( div pCascade:/p MultiCascader data{data} defaultValue{[1-1, 1-2, 2]} minw{224} / hr / pNot cascaded:/p MultiCascader data{data} defaultValue{[1-1, 1-2, 2]} cascade{false} minw{224} / /div ); ReactDOM.render(App /, document.getElementById(root));关键点拆解defaultValue必须是数组MultiCascaderProps继承自FormControlPickerPropsT[], ...即多选组件的值类型是数组元素是命中valueKey默认value的选项值。值采用路径式写法[1-1, 1-2, 2]中的1-1、1-2是根节点1下的子节点2是另一个根节点。这对应mockTreeData({ limits: [3, 3, 4] })生成的三层树结构——第一层 3 个节点值为1、2、3第二层每个节点 3 个子节点如1-1、1-2、1-3第三层每节点 4 个子节点如1-1-1…。minw{224}指定选择器最小宽度与文档其他示例中的w{224}类似用于固定弹层/触发器的宽度保证级联多列面板有足够的展示空间。级联模式cascade对默认值的影响开与关的差异示例中同一个defaultValue{[1-1, 1-2, 2]}在两种模式下呈现不同结果模式配置行为表现级联 Cascade默认cascade{true}MultiCascader defaultValue{[1-1, 1-2, 2]} /勾选子项会联动父节点当某父节点的所有可勾选子节点都被选中时父节点被自动补入选中集合反之当选中集合中存在父子关系时只保留叶子层级值避免冗余非级联 Not cascadedcascade{false}MultiCascader defaultValue{[1-1, 1-2, 2]} cascade{false} /各层级节点独立勾选选中集合与传入值一一对应不做父子联动源码原理useCascadeValue 的 transformValue 预处理从 src/MultiCascader/MultiCascader.tsx 可以看到组件内部通过useControlled(valueProp, defaultValue)将受控值与非受控默认值统一后交给useCascadeValue处理const [controlledValue] useControlled(valueProp, defaultValue); const cascadeValueProps { ...itemKeys, uncheckableItemValues, cascade, value: controlledValue, onCheck, onChange }; const { value, setValue, handleCheck } useCascadeValueT(cascadeValueProps, flattenData);核心逻辑位于 src/MultiCascadeTree/hooks/useCascadeValue.ts 的transformValueconst transformValue useCallback( (value: T[] []) { if (!cascade) { return value; } // ... 对每个值执行 splitValue(item, true, value) // 收集所有相关值自身、被补全的父节点、被剔除的子节点 // 最后过滤若某值的父节点也在 nextValue 中则删除该值只保留最顶层的值 return nextValue.filter(v { const item flattenData.find(n n[valueKey] v); if (item?.parent nextValue.some(v v item.parent?.[valueKey])) { return false; } return true; }); }, [cascade, flattenData, splitValue, valueKey] );由此可以推断出级联模式下defaultValue的实际渲染规则展开checked时补全父节点splitValue会遍历节点的所有祖先当某祖先的所有可勾选子节点均已选中时把该祖先的 value 一并加入src/MultiCascadeTree/hooks/useCascadeValue.ts同时用removeAllChildrenValue剔除该祖先之下的冗余子节点值。去重与顶层化最终uniq去重后凡是父节点也在集合中的值都会被过滤掉保证选中值集合始终是最精简的顶层选中集合。因此当cascade开启时即使defaultValue传入了同时包含父子节点的值最终onChange/ 渲染出的选中集合也会被规范化。而cascade{false}时transformValue直接原样返回传入数组handleCheck也仅做加一个/删一个的朴素处理src/MultiCascadeTree/hooks/useCascadeValue.ts不做任何父子联动。补充若设置了uncheckableItemValues不可勾选项级联补全会自动跳过这些不可勾选的值src/MultiCascadeTree/hooks/useCascadeValue.ts保证父节点补全判断只统计真正可勾选的子项。受控写法对照value onChange如果需要在运行时动态改变选中值例如切换cascade后清空选择、或表单重置应当使用受控模式。官方文档在 docs/pages/components/multi-cascader/fragments/controlled.md 和 docs/pages/components/multi-cascader/fragments/cascade.md 中给出了与默认值示例对称的写法const [value, setValue] React.useState([1-1, 1-2]); return MultiCascader value{value} onChange{setValue} data{data} minw{224} /;以及用Toggle实时切换级联模式、并清空已选值的完整示例const [cascade, setCascade] React.useState(true); const [value, setValue] React.useState([]); const handleToggle checked { setCascade(checked); setValue([]); }; MultiCascader w{280} data{data} value{value} cascade{cascade} onChange{setValue} /;两点实践建议defaultValue 与 value 二选一不要同时使用两者。useControlled以valueProp为优先两者同时传入时value会覆盖defaultValue的效果src/MultiCascader/MultiCascader.tsx。切换 cascade 时先清空值如handleToggle所示因为级联与非级联对父子值是否共存的语义不同直接沿用旧值可能出现预期外的补全/裁剪结果。示例数据从哪来mockTreeData 生成器default-value.md中的./mock即文档站公共工具 docs/utils/mock.ts 导出的mockTreeData其签名与行为如下export function mockTreeData(options: { limits: number[]; // 每层节点数量数组长度即树的深度 labels: string | string[] | ((layer, value, faker) string); // 节点文案 getRowData?: (layer: number, value: string) any[]; // 附加字段 })limits: [3, 3, 4]表示生成 3 层树第一层 3 个节点、第二层每个节点 3 个子节点、第三层每个节点 4 个子节点。节点value由父值拼接序号生成根节点为1、2、3其子节点为1-1、1-2…… 因此defaultValue{[1-1, 1-2, 2]}恰好命中第二层两个节点与第一层一个节点。labels支持函数按层级动态生成文案示例中按[jobArea, jobType, firstName]调用faker.person生成行业—职位—人名语义的树依赖faker-js/faker文档沙箱固定使用^8.0.1见 docs/utils/mock.ts。在你的真实项目中只需要保证data中每个选项含value与label字段childrenKey默认children、valueKey默认value、labelKey默认label均可通过 props 自定义见 src/MultiCascader/MultiCascader.tsxdefaultValue即可直接生效无需依赖 faker。小结三条可直接落地的经验传值形态defaultValue必须是值数组元素为valueKey对应的选项值给默认值使用路径式写法最直观例如[1-1, 1-2, 2]。级联语义默认cascade{true}时组件会基于useCascadeValue的transformValue对默认值做父节点补全 冗余子值裁剪的规范化cascade{false}时值保持原样、互不影响。模式选择静态回显用defaultValue非受控需要程序化改写值重置、联动清空、切换级联模式时改用valueonChange受控并在切换cascade时注意清空旧值。如果希望进一步了解多列级联面板、搜索视图或禁用项等细节可继续阅读 src/MultiCascader/MultiCascader.tsx 与同目录fragments/下的cascade.md、controlled.md、async.md、uncheckable.md等文档片段。赞分享前端UI组件【免费下载链接】rsuite A suite of React components .项目地址https://gitcode.com/gh_mirrors/rs/rsuite点击查看免费下载相关推荐rsuite MultiCascader 受控模式完全指南value、onChange 与级联值的正确用法rsuite MultiCascader 受控模式完全指南value、onChange 与级联值的正确用法 导读 MultiCascader 是 rsuite前端UI组件rsuite MultiCascader 撑满模式block用法详解块级级联多选器实战指南rsuite MultiCascader 撑满模式block用法详解块级级联多选器实战指南 本篇技术指南围绕 rsuite 组件库中 MultiCasca前端UI组件Ant Design Cascader 级联选择器 defaultValue 默认值使用指南Ant Design Cascader 级联选择器 defaultValue 默认值使用指南 级联选择Cascader是 Ant Design 表单类组件中UI组件前端设计系统上一篇uWebSockets容器健康检查成功率监控告警与指标下一篇如何快速掌握Silero VAD企业级语音活动检测的完整教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

VMware Fusion 安装 Windows 11:vTPM 2.0 配置完全指南 2026/9/29 6:49:48

VMware Fusion 安装 Windows 11:vTPM 2.0 配置完全指南

Windows 11发布后,TPM 2.0从零开始成为绕不开的话题。很多人第一次在macOS上接触VMware Fusion,装Windows 11遇到的就是“此电脑无法运行Windows 11”或者各类论坛里铺天盖地的“跳过TPM检测”教程。这里先把结论放在前面:VMware Fusion本身就…

阅读更多 →
统一管理54个AI编程工具Agent技能:Skills Manager桌面中枢设计与实操 2026/9/29 6:49:42

统一管理54个AI编程工具Agent技能:Skills Manager桌面中枢设计与实操

1. 当54个AI编程工具各自为政,我为什么需要一个统一中枢如果你最近半年同时用过三款以上的AI编程工具,大概率会经历一种很割裂的状态:Cursor里配了一套Agent技能,Claude Code里又得重新写一遍规则文件,换到Windsurf或者…

阅读更多 →
2026年了,PLM的AI能力该用什么标准来评估? 2026/9/29 6:49:42

2026年了,PLM的AI能力该用什么标准来评估?

开篇:当所有PLM都在说AI2026年,我参加过多场PLM产品评测和供应商Demo。几乎每家都在展示AI能力:文档智能解析、风险自动预警、BOM异常检测……PPT很精彩,演示很流畅。但当你真正开始评估时,会发现一个尴尬的现象&#…

阅读更多 →
水泵站远程监控实战:NB-IoT物联网平台设计与部署全解析 2026/9/29 6:49:35

水泵站远程监控实战:NB-IoT物联网平台设计与部署全解析

在做水泵站远程监控的同行应该都有体会:设备分布散、现场环境差、故障发现永远靠人跑,最关键的几个数据(运行电流、出口压力、流量)基本靠人工抄表和感觉判断。我几年前开始折腾一套物联网水泵应用平台,代号就叫 YIBAB…

阅读更多 →
国企数字化转型落地三支柱:业财一体、IoT边缘采集与移动巡检闭环 2026/9/29 6:49:35

国企数字化转型落地三支柱:业财一体、IoT边缘采集与移动巡检闭环

简介:本资源是一份面向国有企业管理者、IT负责人及数字化转型从业者的实战型解决方案文档,系统梳理国家政策导向、社会数字化趋势与企业转型路径,聚焦解决战略认知模糊、技术选型困惑与落地误区频发等核心问题。全文以PDF格式呈现&#xff0c…

阅读更多 →
【Codex教育管理系统】用教师管理维护任课人员信息 2026/9/29 6:49:35

【Codex教育管理系统】用教师管理维护任课人员信息

教师管理是用户中心连接人员账号、任教学科和班级范围的基础模块。它不只记录教师姓名,还决定教师可以管理哪些行政班、哪些走班,以及后续学生管理、班级治理、考试分析页面能否按教师身份正确展示数据。 本文基于 server_backend/modules/User 和 server_vue3/src/views/mod…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉