Neste artigo você aprenderá a como passar props para o componente pai no React, uma ação muito comum em sistemas mais complexos

passar props para o componente pai no React capa

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

Em aplicações React, a comunicação entre componentes é um tópico vital.

Enquanto é comum passar informações de um componente pai para um componente filho através de props, muitos desenvolvedores se deparam com o desafio inverso: como passar informações de um componente filho para seu componente pai.

Este artigo aborda essa questão e mostra como realizar essa comunicação de forma otimizada.

Fundamentos do Fluxo de Dados no React

Antes de adentrarmos na solução, é crucial entender o conceito fundamental de fluxo de dados no React.

Unidirecionalidade das props

O React segue um princípio de fluxo de dados unidirecional. Isso significa que as props (propriedades) fluem em uma única direção: do componente pai para o componente filho.

Esse design ajuda a manter o código mais previsível e fácil de rastrear, pois sabemos de onde os dados estão vindo e para onde estão indo.

Mas e quando queremos que o componente filho comunique algo de volta ao pai?

Utilizando Funções Callback

A abordagem mais comum para permitir que um componente filho comunique algo ao seu componente pai é através de funções callback. Vamos a um exemplo prático:

Exemplo: Componente de Input

Imagine que temos um componente pai que contém um componente filho responsável por receber uma entrada de texto.

Queremos que, sempre que o valor do input mude, o componente pai seja notificado e possa reagir a essa mudança.

ComponentePai.js

import React, { useState } from 'react';
import InputFilho from './InputFilho';

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

  const handleInputChange = (novoTexto) => {
    setTexto(novoTexto);
  };

  return (
    <div>
      <InputFilho onInputChange={handleInputChange} />
      <p>Texto inserido: {texto}</p>
    </div>
  );
}

InputFilho.js

import React from 'react';

function InputFilho({ onInputChange }) {
  const handleChange = (event) => {
    onInputChange(event.target.value);
  };

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

Neste exemplo, o ComponentePai passa uma função callback (handleInputChange) para o InputFilho através da prop onInputChange.

Quando o valor do input muda no InputFilho, ele chama essa função callback, notificando o ComponentePai sobre a mudança.

Benefícios desta Abordagem

1. Mantém o Fluxo Unidirecional de Dados

Mesmo que pareça que estamos passando dados do filho para o pai, ainda estamos aderindo ao princípio do fluxo de dados unidirecional.

O componente filho não está realmente enviando dados de volta.

Em vez disso, ele apenas notifica o componente pai (através da função callback) que algo mudou, e é o componente pai que decide como lidar com essa mudança.

2. Reutilização de Componentes

Ao usar funções callback, o componente filho permanece “burro”, ou seja, ele não tem conhecimento sobre o que acontece quando os dados mudam.

Isso torna o componente filho altamente reutilizável, pois ele simplesmente notifica sobre a mudança, sem se preocupar com a lógica que acontece após a notificação.

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

Conclusão

E chegamos ao fim do artigo sobre como passar props para o componente pai no React!

Em React, a comunicação entre componentes é fundamental para criar aplicações dinâmicas e interativas.

Embora o fluxo padrão de dados seja do componente pai para o filho através de props, é possível (e muitas vezes necessário) notificar o componente pai sobre mudanças que ocorrem no filho.

Através do uso de funções callback, podemos efetivamente e de forma otimizada estabelecer essa comunicação, garantindo que nossos componentes permaneçam modularizados e reutilizáveis.

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

Subscribe
Notify of
guest

1 Comentário
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Thalisson

Obrigado, estava empacado com isso ne um projeto, ajudou muito