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

131
Vistas
Actualizar datos a través de una nueva solicitud GET - React Dropdown

Tengo este menú desplegable (hecho con MUI) que permite elegir el valor del día. Cuando cambie, me gustaría que hiciera una nueva solicitud GET con el nuevo parámetro, pero no sé cómo hacerlo ya que usa useEffect.

Mi función para obtener datos

 const [loading, setLoading] = useState(true); const [prepData, setPrepData] = useState([]); const [day, setDay] = React.useState(3); console.log(day); const options=["J+1","J+2","J+3", "J+4"] const handleChange = (event) => { setDay(event.target.value); }; useEffect(() => { const fetchData = async () => { setLoading(true); try { const {data: response} = await axios.get('/api/home?day=' + day) setPrepData(response) } catch (err) { console.log(err.message) } setLoading(false) } fetchData() }, []);

Mi menú desplegable:

 <Box key={'box' + index} sx={{ minWidth: 120 }}> <FormControl key={'form' + index} fullWidth> <InputLabel key={'input' + index} id="dropdown">Date Liv.</InputLabel> <Select key={'select' + index} labelId="select-label" id="dateLiv" value={day} label="Date Liv." onChange={handleChange} type='submit' > {(options).map((option, index) => ( <MenuItem key={'menuItem' + index} value={index + 1}>{option}</MenuItem> ))} </Select> </FormControl> </Box>
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Añadir como dependencia:

 useEffect(() => { const fetchData = async () => { setLoading(true); try { const {data: response} = await axios.get('/api/home?day=' + day) setPrepData(response) } catch (err) { console.log(err.message) } setLoading(false) } fetchData() }, [day]); // ------> here
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede agregar el day como dependencia en useEffect . De modo que cuando se cambie el valor del día, se ejecutará automáticamente useEffect .

 useEffect(() => { const fetchData = async () => { setLoading(true); try { const {data: response} = await axios.get('/api/home?day=' + day) setPrepData(response) } catch (err) { console.log(err.message) } setLoading(false) } fetchData() }, [day]); // added day as dependent property
about 4 years ago · Juan Pablo Isaza Denunciar

0

El useEffect que definió se activa cuando su componente se monta por primera vez porque usa el parámetro [] al final. Pero puede dar cualquier estado var en lugar de eso.

Si desea actualizar los datos cada vez que cambia el valor del menú desplegable, puede declarar otro efecto de uso que se llama tan pronto como cambia la variable de estado "día". Haz algo como esto:

 useEffect(() => { // Action called fetchData(day) }, [day])
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