OptGroup 是故意被限制嵌套使用吗
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 48/100
- Issue 类型
- 文档
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- react, typescript
调研方向
先阅读 src/utils/valueUtils.ts 第 54 行附近对 OptGroup 的处理,然后查看官方 Select 文档和示例,了解其当前关于分组的指导。完成的标准是记录所支持的嵌套行为及其限制;如果项目选择支持更深层的分组,则记录已达成一致的行为。
由索引模型根据 Issue 内容生成。
描述
官方文档和示例关于 OptGroup 的说明太少了,我发现 OptGroup 是故意被限制了嵌套使用,即 Select 只能支持一级分组。
在 src/utils/valueUtils.ts 第 54 行:
function dig(list: OptionType[], isGroupOption: boolean) {
list.forEach((data) => {
const label = data[fieldLabel];
if (isGroupOption || !(fieldOptions in data)) { // isGroupOption 限制了进一步递归更深层的 Group
const value = data[fieldValue];
// Option
flattenList.push({
key: getKey(data, flattenList.length),
groupOption: isGroupOption,
data,
label,
value,
});
} else {
let grpLabel = label;
if (grpLabel === undefined && childrenAsData) {
grpLabel = data.label;
}
// Option Group
flattenList.push({
key: getKey(data, flattenList.length),
group: true,
data,
label: grpLabel,
});
dig(data[fieldOptions], true);
}
});
}
文档上没有说明分组仅限于一级,实现上也没有对内嵌分组容错(造成页面上某一个 Group 被显示成了 GroupOption,但实际上又无法选中),目前的样式没有准备做进一步内嵌的展示样式(当然实际上在这种选择框下面做过多内嵌展示也不友好)。
希望可以在文档上明确一下功能说明,明确说明此处不支持一级以上的分组,或者干脆就直接支持多级分组。
- 主要语言
- TypeScript
- 星标
- 938
- 派生
- 482
- 平均合并
- 15 小时 8 分钟
- 30 天内合并 PR
- 2
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
react-component/select 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 35/100
react-component/select#1216 ·
-
难度 2/5 1-3 小时 新手友好度 45/100
react-component/select#1159 ·
-
a11y 问题未关闭
难度 3/5 1-2 天 新手友好度 35/100
react-component/select#1087 · 1 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 25/100
react-component/select#1086 ·
-
难度 3/5 1-2 天 新手友好度 30/100
react-component/select#1082 · 1 条评论 ·
查看 react-component/select 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
rohitg00/agentmemory#1428 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
boxlite-ai/boxlite#1729 ·
维护者通常 1 天内回复
-
detectors enhancement good first issue
难度 2/5 1-3 小时 新手友好度 86/100
SM260845/readme-gen#1 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
angular/angularfire#3774 ·
维护者通常 2 天内回复