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

103
Vistas
Cómo borrar entradas y cerrar modal después de una llamada de función de envío asíncrono en React Typescript

Tal vez tengo lo que parece ser un problema básico, pero simplemente no pude encontrar una solución a este problema. Estoy pasando la función handleSubmit, que es asíncrona, pero no devuelve ningún valor, de un componente de formulario principal a uno secundario. Después de llamarlo en un componente secundario, quiero borrar las entradas y cerrar el modal. En mi caso, los valores de entrada se borran y el modal se cierra antes de que handleSubmit haya terminado de ejecutarse. Estoy usando React con TypeScript en este proyecto. Si alguien pudiera ayudarme estaría agradecido. Gracias por adelantado

Componente principal

 const createVariation = (variationType: string, variationValues: string[]): void => { setLoading(true); setTimeout(() => { storeProductVariant(product.id, variationType, variationValues, accessToken) .then(() => { showProductVariants(product.id, accessToken) .then((response) => { dispatch(actionsProducts.showProductVariants(response.data.data)); }); showProductSkus(product.id, accessToken) .then((response) => { dispatch(actionsProducts.showProductSkus(response.data.data)); }); setLoading(false); }) .catch((error) => { setError(error.response.data.errors.variant[0]); setLoading(false); setTimeout(() => { setError(''); }, 3000); }); }, 1000);

};

Componente hijo

 const onSubmit = (event: React.FormEvent<HTMLFormElement>): void => { event.preventDefault(); if (validateInputs( inputValues.variationType, inputValues.variationValues, )) { handleSubmit(inputValues.variationType, inputValues.variationValues, variantId);

El problema está aquí ya que no puedo llamar a .then() porque la función es nula

 setInputValues({ variationType: '', variationValues: [], variation: '', }); handleClose(); setSelectedVariations([]); }

};

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

0

Lo que necesita podría ser un poco complejo, sin embargo, puede lograrlo siguiendo los siguientes pasos:

  1. Mantenga una variable de estado en el componente principal, por ejemplo, submissionDone como loading . Y pase esto a su componente hijo.

  2. Actualice el submissionDone hecho a true cuando la promesa se resuelva en el padre.

  3. El valor modificado/actualizado de submissionDone se reflejará en el componente secundario.

  4. Borre sus entradas o cualquier otra cosa en el componente secundario en función de esta variable.

Dado que no ha proporcionado el código completo, le doy una pista de que esta lógica en el componente secundario se puede escribir dentro de un useEffect si está usando un componente funcional o componentDidUpdate si está usando componentes de clase.

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