Tengo una duda sobre el manejo de errores de llamada de API usando Axios. Esto funciona para mí, pero parece que estoy usando demasiada lógica dentro de la Devolución de llamada de error de captura.
const onSubmit = async (data) => { await axios .post("http://localhost:3001/auth/verify-email", data, { headers: { "Content-Type": "application/json", }, }) .then((res) => navigate("/", { state: { response: res.data.result, verified: true, message: "You have succesfully registered", }, }) ) .catch((error) => { if (error.response.data.errors[0].code === "InvalidToken") { axios.get(`http://localhost:5001/auth/verify-email/${data.email}`); alert("Check your email for the new Verification Code"); navigate("/authentication", { state: { email: data.email }, }); } }); };En este caso, si ocurre algún tipo de error, llama a una API para restablecer el token. Funciona bien, pero tal vez se pueda refactorizar.
Consulte la documentación de axios sobre errores
Si desea extraer el código de error de una manera "más limpia", puede tratarlo de esta manera: error.toJSON()
De esta manera, su lógica para detectar el error será menos "desordenada"