OptGroup 是故意被限制嵌套使用吗
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Documentação
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- react, typescript
- Domínio
- documentation
Direção de pesquisa
Comece lendo o tratamento de OptGroup em src/utils/valueUtils.ts por volta da linha 54 e, em seguida, consulte a documentação oficial do Select e os exemplos para verificar as orientações atuais sobre agrupamento. A tarefa estará concluída quando o comportamento de aninhamento suportado e sua limitação estiverem documentados, ou quando o comportamento acordado estiver registrado caso o projeto decida oferecer suporte a grupos mais profundos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
官方文档和示例关于 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,但实际上又无法选中),目前的样式没有准备做进一步内嵌的展示样式(当然实际上在这种选择框下面做过多内嵌展示也不友好)。
希望可以在文档上明确一下功能说明,明确说明此处不支持一级以上的分组,或者干脆就直接支持多级分组。
- Linguagem predominante
- TypeScript
- Estrelas
- 938
- Forks
- 482
- Merge médio
- 15h 8min
- PRs com merge (30d)
- 2
Preparar o ambiente
Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de react-component/select
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
react-component/select#1216 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 45/100
react-component/select#1159 ·
-
a11y 问题Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
react-component/select#1087 · 1 reação ·
-
showSearch 默认值是 false 把Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
react-component/select#1086 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 30/100
react-component/select#1082 · 1 comentário ·
Todas as issues de react-component/select
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
rohitg00/agentmemory#1428 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
boxlite-ai/boxlite#1729 ·
Mantenedores costumam responder em até 1 dia
-
detectors enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
SM260845/readme-gen#1 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
angular/angularfire#3774 ·
Mantenedores costumam responder em até 2 dias