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

403
Vistas
Cómo actualizar el componente principal del componente secundario en React (funcional)

Tengo el siguiente componente funcional llamado RoomManagement. En el primer render, se llama a fetchRooms, que a su vez establece inicialmente las variables de estado con datos de una base de datos.

Tengo un componente secundario llamado RoomManagementModal, donde paso mi función setLoading y fetchRooms.

Tengo problemas para volver a renderizar el componente principal. Hago clic en un botón en el componente secundario (esto agrega algo a la base de datos). Entonces, estoy tratando de obtener los nuevos datos llamando a props.fetch() una vez más, pero esta vez desde el niño, lo que pensé que desencadenaría un cambio de estado en el padre, pero no parece de esa manera.

Parece que no puedo encontrar una manera de forzar que el componente principal se vuelva a renderizar, si eso es posible

 function RoomManagement() { const [rooms, setRooms] = useState([]); const [unavailableRooms, setUnavailableRooms] = useState(); const [loading, setLoading] = useState(true); const fetchRooms = async () => { await getAllRooms().then((res) => { res.json().then(data => setRooms(data)) }); await getAllRoomsUnavailable().then((res) => { res.json().then(data => setUnavailableRooms(data[0])) }) setLoading(false) } useEffect(() => { fetchRooms(); }, []); return (..... <RoomManagementModal setLoading={setLoading} fetch={fetchRooms}/> ) } export default RoomManagement;
 <Button onClick={() => { if (form.room_id && form.start && form.end) { createRoomUnavailable(form).then((res) => { if (res.status != 200 && res.status != 201) { res.text().then((e) => setError(e)); } else { props.fetch() } }); } else { setError("Missing required Room Id or date time."); } }} > Submit </Button>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Componente principal

1. Declare un estado y un setter para el título o slug 2. Defina una función para actualizar el estado 3. Pase esa función como accesorios al componente secundario

Componente hijo

1. Defina una función que maneje y llame a la función pasada como accesorios 2. Del componente principal

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