Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

400
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda