Nesta postagem do blog, mostrarei um cenário prático onde um componente pai (ListBox) interage com um componente filho (AlertComponent) usando adereços e retornos de chamada.
Isso é útil no React quando você deseja que um componente filho se comunique de volta ao pai para manter o estado ou acionar ações.
Vamos entender com a ajuda deste exemplo:
Aqui está o detalhamento da interação:
import React, { useState } from 'react'; import AlertComponent from './AlertComponent'; const ListBox = () => { const [showComponent, setShowComponent] = useState(false); const alertAction = async () => { setShowComponent(!showComponent); }; return ( ); }; export default ListBox;{/* Passing props to the child component */}Item 1
{/* Other list items */}{ alert('Item Deleted'); setShowComponent(false); }} onCancel={() => setShowComponent(false)} showComponent={alertAction} />
export const AlertComponent: = ({ title, description, onAccept, onCancel, showComponent }) => { return (... rest of the code ) }
showComponent está funcionando como um retorno de chamada, pois mantém o estado responsável por mostrar/ocultar o AlertComponent
Sempre que Reject for pressionado, esse retorno de chamada alternará o estado atual de showComponent.
{ alert('Item Deleted'); setShowComponent(false); }} onCancel={() => setShowComponent(false)} showComponent={alertAction} />
Usar props e callbacks dessa forma permite um fluxo claro de dados entre os componentes pai e filho no React.
O pai pode controlar o estado e passá-lo para o filho, enquanto o filho pode se comunicar de volta por meio de retornos de chamada para informar o pai sobre quaisquer alterações ou ações que o usuário tenha executado.
Isso é particularmente útil para cenários como exibição de alertas, modais ou pop-ups em resposta à interação do usuário.
Continue construindo!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3