Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] preventDefault() no Tab

Boa noite, pessoal!

Na solução proposta pelo Vinicios, ele colocou o seguinte código:

case 'Tab':
    evento.preventDefault();
    setOpcaoFocada(null);
    alternarVisibilidade(false);
    break;

Só que, ao colocar o evento.preventDefault();, não está sendo mais possível dar Tab e ir para o campo Cidade.

Então o mais correto seria não ter essa linha de código?

Obrigado!

3 respostas

Sim amigo, o maia correto concordo com vc!

solução!

Olá, Caio

Tudo bem?

Eu testei o projeto final do curso e não tem essa linha de código e parece estar funcionando certinho, creio que não precisa dela.

O Código está assim lá:

JSX
const manipularTeclaDoTeclado = (evento) => {
        alternarVisibilidade(true)
        switch (evento.key) {
            case 'ArrowDown':
                evento.preventDefault();
                setOpcaoFocada(focoAntigo => {
                    if (focoAntigo == null) {
                        return 0;
                    }
                    if (focoAntigo === (opcoes.length - 1)) {
                        return opcoes.length - 1
                    }
                    return focoAntigo += 1
                })
                break;
            case 'ArrowUp':
                evento.preventDefault();
                setOpcaoFocada(focoAntigo => {
                    if (!focoAntigo) {
                        return 0;
                    }
                    return focoAntigo -= 1
                })
                break;
                case 'Enter':
                    evento.preventDefault();
                    setOpcaoFocada(null)
                    alternarVisibilidade(false)
                    setOpcaoSelecionada(opcoes[opcaoFocada])
                    break;
                case 'Tab':
                    setOpcaoFocada(null)
                    alternarVisibilidade(false)
                    break;
                case 'Escape':
                    evento.preventDefault();
                    setOpcaoFocada(null)
                    alternarVisibilidade(false)
                    break;
            default:
                break;
        }
    }

Qualquer coisa dá uma olhadinha no projeto final no GitHub: Link Projeto Final

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

Boa noite, Renan!

Não cheguei a ver o código final do curso no GitHub, mas durante a aula acabou ficando nessa situação que comentei.

Se está tudo certo no fim, então isso que importa.

Valeu!