Tengo un manejo de error de inicio de sesión con redux que se parece a esto:
export const login = (params: any) => async (dispatch: Dispatch) => { try { const authData = await API.post("login", params); sessionStorage.setItem("access_token", authData?.data?.access_token); dispatch(ActionCreators.getTokens(authData?.data?.access_token)); } catch (error) { throw error; } };Luego, en mi componente, estoy tratando de detectar el error con try/catch nuevamente, pero no tengo acceso a la respuesta. Supongo que debido al alcance de prueba/captura.
const submitHandler = async (e: SyntheticEvent) => { e.preventDefault(); try { var res: any = await dispatch( login({ email, password, token, }) ); router.push("/dashboard"); } catch (error) { setError(res?.response.data.message); } };¿Alguna idea de como arreglarlo? Gracias.
Tuve el mismo problema y también estaba detectando un error tanto en mi componente de reacción como en mi archivo de componente redux. El compilador no funciona así, eliminé el bloque catch de mi archivo de componentes y funcionó. Por favor inténtalo, gracias
No es necesario arrojar el error en el bloque catch de la acción redux. Quitarlo funciona. El bloque de captura en su archivo de componente es suficiente para manejar el error.