Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

286
Views
Tratando de pasar un Enum[] del componente hijo al padre

Estoy tratando de pasar una matriz de objetos (enumeraciones) de un componente hijo al padre. Pero no estoy entendiendo el truco.

Componente Padre:

 const [openDialog, setOpenDialog] = useState(false); const handleReturn = () => filtros; const [filtros, setFiltros] = useState<Filtros[]>([]); useEffect(() => { setFiltros(handleReturn); console.log(filtros); }, [openDialog]); <FiltrosDialog openDialog={openDialog} handleCloseDialog={() => setOpenDialog(false)} filtrosSelec={filtros} />

Son Component (aquí hay mucho código, pero confía en mí, el estado está devolviendo una matriz de filtros):

 interface Props { openDialog: boolean; handleCloseDialog: () => void; filtrosSelec: Filtros[]; } export enum Filtros { Ligacoes = "Ligações", Tempo = "Tempo em chamada (min)", Email = "E-mails enviados", Reuniao = "Reuniões agendadas", } const FiltrosDialog: React.FunctionComponent<Props> = ({ openDialog, handleCloseDialog, filtrosSelec, })=> { const [checked, setChecked] = useState<Filtros[]>([]); const [left, setLeft] = useState<Filtros[]>([ Filtros.Reuniao, Filtros.Tempo, Filtros.Email, Filtros.Ligacoes, ]); const [right, setRight] = useState<Filtros[]>(filtrosSelec); const leftChecked = intersecao(checked, left); const rightChecked = intersecao(checked, right); ...}

Básicamente, no estoy seguro de si se supone que mis accesorios de Filtros[] son una función o una matriz en sí misma...

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Sus estados están bien, pero aquí está la lógica para la comunicación entre padres e hijos en términos de pedirle al niño que cambie la propiedad de los padres.

 cont Parent = () => { const [count, setCount] = useState(0) return <Child count={count} change={setCount} /> }

Puede ver que se pasa setCount , no count . Un niño solo puede cambiar la propiedad principal a través de un método. Porque en términos de establecer la propiedad, count = 3 no lo logrará debido a que count es un valor primitivo.

Esto suele ser bastante claro cuando crea un componente de entrada, como el siguiente.

 <Input value={value} onChange={onChange} />
about 4 years ago · Juan Pablo Isaza Report

0

Acabo de descubrir cómo hacerlo. Necesito pasar setState como la función dentro del apoyo secundario en el componente principal. Y el accesorio secundario debe ser un vacío y su argumento es el Array real:

Padre:

 const [filtros, setFiltros] = useState<Filtros[]>([]); ... <FiltrosDialog openDialog={openDialog} handleCloseDialog={() => setOpenDialog(false)} filtrosSelec={setFiltros} />

Niño:

 interface Props { openDialog: boolean; handleCloseDialog: () => void; filtrosSelec: (arg: Filtros[]) => void; } const FiltrosDialog: React.FunctionComponent<Props> = ({ openDialog, handleCloseDialog, filtrosSelec, }) => { const [right, setRight] = useState<Filtros[]>([]); useEffect(() => filtrosSelec(right)); ...
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!