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

onChange não executa

Pra mim não aparece nada no console quando altero os campos. Desde a primeira abordagem com o onChange, aplicando this.handleMudancaTitulo. Apliquei as alterações a partir do código disponível no começo do módul desta aula. Pensei que pudesse ter feito algo errado e segui para a próxima aula, baixando o próximo zip de código, mas também não funciona com o código novo. A impressão é que em nenhum momento o evento chama o método.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

5 respostas
solução!

Oi Anderson, tudo certo?

Cara.. coloca teu handle dentro do render, antes do return, como função e chama ela no onChange.

Fiz o teste com a lógica abaixo para testar e deu certo.

import { Component } from "react";
import "./styles.css";

class Teste extends Component {
  render() {
    function handleInput() {
      console.log("mudou");
    }

    return <input type="text" onChange={handleInput} />;
  }
}

export default function App() {
  return (
    <div className="App">
      <Teste />
    </div>
  );
}

Caso você queira gerenciar o estado e pegar essas mudanças para tratar em algum lugar, usa o useState em um componente funcional.

import { useState } from "react";
import "./styles.css";

const Teste = () => {
  const [state, setState] = useState();
  console.log(state);

  return <input type="text" onChange={(ev) => setState(ev.target.value)} />;
};

export default function App() {
  return (
    <div className="App">
      <Teste />
    </div>
  );
}

Espero ter ajudado!

Abs.

Bom dia, Eraldo. Obrigado pela sua ajuda. Tentei os passos descritos, mas nada mudou. Percebi que, por algum motivo, haviam dois arquivos FormularioCadastro.jsx no projeto. Um dentro da pasta FormularioCadastro e outro fora, diretamente na pasta components. Como o caminho de busca já estava da forma simplificada, buscando somente por "components/FormularioCadastro" e, presumivelmente, deveria achar um index.jsx dentro de tal pasta, acabava parando primeiro no FormularioCadastro.jsx que está um nível antes na árvore de busca. O erro pode ser visualizado na imagem.

Entendi Anderson.

O ideal seria vc disponibilizar esse projeto no Github. Sendo assim consigo clonar e testar local para tentar te ajudar melhor.

Não vai ser necessário. Após excluir o arquivo duplicado de fora da pasta a chamada de função funcionou.

Boa!!!! :

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software