DEV Community

Emerson Vieira
Emerson Vieira

Posted on

4 1

Dicas rápidas - React para Iniciantes

Você já deve ter se deparado com a situação onde precisa verificar se o valor de estado foi alterado no momento seguinte ao setState e deve ter ficado horas se perguntando o motivo do estado ainda estar o mesmo de antes, ou seja, parece que o estado não mudou. Vou exemplificar abaixo...

import React from "react";

class App extends React.Component {
  state = {
    name: "Dam Abramov",
  };

  componentDidMount() {
    this.setState({
      name: "Emerson V",
    });
    console.log(this.state.name);
  }

  render() {
    return (
      <div>
        <p> {this.state.name} </p>
      </div>
    );
  }
}

export default App;
Enter fullscreen mode Exit fullscreen mode

No código acima, será mostrado Dam Abramov no console.log que tem dentro de componentDidMount e será mostrado Emerson V na visualização da página. Eu vou explicar o motivo de parecer que o estado não foi alterado. O motivo é: setState é assíncrono, ou seja, quando o console.log é executado, o estado ainda não foi alterado. Para que possamos mostrar o estado atualizado no console.log, podemos inserir o mesmo no retorno de chamada do setState, que vai ser executado após a alteração no estado. Então o código acima ficaria com uma pequena mudança no componentDidMount.

  componentDidMount() {
    this.setState(
      {
        name: "Emerson V",
      },
      () => {
        console.log(this.state.name);
      }
    );
  }
Enter fullscreen mode Exit fullscreen mode

essa foi a dica de hoje. Qualquer dúvida ou feedback é só comentar :)

Sentry mobile image

App store rankings love fast apps - mobile vitals can help you get there

Slow startup times, UI hangs, and frozen frames frustrate users—but they’re also fixable. Mobile Vitals help you measure and understand these performance issues so you can optimize your app’s speed and responsiveness. Learn how to use them to reduce friction and improve user experience.

Read full post →

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay