Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

OptGroup 是故意被限制嵌套使用吗

Aberta
#908 0 comentários 0 reações 0 responsáveis Ver no GitHub

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

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de react-component/select

Todas as issues de react-component/select

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.