Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

163
Vistas
¿Cómo actualizar el estado del componente principal después de que el servidor se actualice en el componente secundario?

Tengo una lista de tareas pendientes y después de agregarle un elemento en el componente secundario, el cambio no se refleja de inmediato. Tengo que recargar manualmente la página para ver el cambio. La estructura es algo como esto.

 ToDo(Parent Componenet) -> Todoi(Child Component)

Estoy actualizando datos en el componente secundario pero, como dije antes, no refleja el cambio a menos que vuelva a cargar la página manualmente. Si de alguna manera puedo cambiar el estado en el componente principal a través del componente secundario, el componente se recargará solo, pero no puedo hacerlo. Aquí está la parte donde estoy actualizando la lista.

 const handleList= (e) => { e.preventDefault(); console.log(e); console.log(addtodo); axios.post('/list',{ data:addtodo, userid:username }).then(function(res){ if(res.data === "ToDo Updated"){ navigate(`/todo/${username}`); } }); }

¿Qué debo hacer para lograrlo?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede pasar el setter de estado a su componente secundario y luego agregar la nueva entrada en su función de publicación:

 const handleList= (e) => { e.preventDefault(); console.log(e); console.log(addtodo); axios.post('/list',{ data:addtodo, userid:username }).then(function(res){ if(res.data === "ToDo Updated"){ setList(prevState => prevState.concat(addtodo)); } }); }
 <YourComponent setList={setList}/>

O puede agregar una función de devolución de llamada a su componente que se ejecuta en una solicitud exitosa de la siguiente manera:

 const handleList= (e) => { e.preventDefault(); console.log(e); console.log(addtodo); axios.post('/list',{ data:addtodo, userid:username }).then(function(res){ if(res.data === "ToDo Updated"){ onSuccess(addtodo) } }); }
 <YourComponent onSuccess={(todo)=>setList(prevState => prevState.concat(todo))}/>

No estoy seguro de cómo se ve su estado/tipo de datos, ¡pero espero que esto ayude!

about 4 years ago · Juan Pablo Isaza Denunciar

0

Por lo general, un componente de reacción se volverá a renderizar en dos situaciones:

  1. Los estados han sido actualizados.
  2. Los accesorios han sido actualizados.

Por lo tanto, podríamos activar manualmente el cambio de estado del componente principal en el componente secundario o actualizar la respuesta del servidor como accesorios del componente principal.

No sé cómo maneja sus datos en el componente principal, pero supongo que es posible que deba hacer que React detecte la actualización de sus datos.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda