Neste artigo você aprenderá a como chamar onChange com Enter em React JS, ou seja, ativar o evento onChange com enter

chamar onChange com Enter em React capa

Fala programador(a), beleza? Bora aprender mais sobre React JS!

O Básico do Evento de Tecla

No React, os eventos de teclado são representados pelo evento sintético onKeyPress, onKeyDown ou onKeyUp.

Para detectar especificamente a tecla “Enter”, podemos verificar a propriedade key ou keyCode do evento.

Exemplo Simples:

function InputComEnter() {
  const verificarTecla = (evento) => {
    if (evento.key === 'Enter') {
      console.log("Tecla 'Enter' pressionada!");
    }
  };

  return <input type="text" onKeyPress={verificarTecla} />;
}

No exemplo acima, toda vez que a tecla “Enter” é pressionada, uma mensagem é exibida no console.

Integrando com onChange

Agora, digamos que queremos integrar a detecção da tecla “Enter” com uma função onChange.

O objetivo é atualizar o estado do componente quando o usuário digita e, ao pressionar “Enter”, realizar uma ação adicional, como enviar os dados.

Exemplo Prático:

import React, { useState } from 'react';

function CaixaDeBusca() {
  const [texto, setTexto] = useState('');

  const handleInputChange = (evento) => {
    setTexto(evento.target.value);
  };

  const handleKeyPress = (evento) => {
    if (evento.key === 'Enter') {
      enviarBusca();
    }
  };

  const enviarBusca = () => {
    console.log("Buscando por:", texto);
  };

  return (
    <div>
      <input 
        type="text" 
        value={texto} 
        onChange={handleInputChange} 
        onKeyPress={handleKeyPress} 
        placeholder="Digite e pressione Enter..." 
      />
      <button onClick={enviarBusca}>Buscar</button>
    </div>
  );
}

Neste componente CaixaDeBusca, o usuário pode tanto pressionar o botão “Buscar” quanto pressionar a tecla “Enter” para iniciar uma busca.

Otimizando com Hooks Personalizados

Podemos ir além e criar um hook personalizado para lidar com a detecção da tecla “Enter”, tornando nosso código mais reutilizável.

Exemplo com Hook Personalizado:

import React, { useState } from 'react';

function useEnter(tecla = 'Enter') {
  const [pressionado, setPressionado] = useState(false);

  const handleKeyPress = (evento) => {
    if (evento.key === tecla) {
      setPressionado(true);
    } else {
      setPressionado(false);
    }
  };

  return [pressionado, handleKeyPress];
}

function CaixaDeBuscaOtimizada() {
  const [texto, setTexto] = useState('');
  const [enterPressionado, verificarEnter] = useEnter();

  const handleInputChange = (evento) => {
    setTexto(evento.target.value);
  };

  if (enterPressionado) {
    console.log("Buscando por:", texto);
  }

  return (
    <input 
      type="text" 
      value={texto} 
      onChange={handleInputChange} 
      onKeyPress={verificarEnter} 
      placeholder="Digite e pressione Enter..." 
    />
  );
}

O hook personalizado useEnter verifica se a tecla “Enter” foi pressionada e retorna um valor booleano correspondente.

Isso torna nosso código mais limpo e modular.

Quer aprender mais sobre programação? Conheça nosso canal no YouTube:

Conclusão

Chegamos ao fim do artigo sobre como chamar onChange com Enter em React!

Facilitar para que os usuários interajam com sua aplicação é uma prática recomendada para melhorar a usabilidade.

Ao permitir que a tecla “Enter” acione eventos em React JS, proporcionamos uma experiência mais fluida e intuitiva.

Seja através de métodos simples ou com a ajuda de hooks personalizados, o React nos oferece as ferramentas necessárias para implementar essas interações de maneira otimizada e eficaz.

Está buscando em evoluir como Programador? Confira o nossos cursos de programação.

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments