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

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

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 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