De navegación después de dispatchin acción redux con reaccionar nativo

0

Pregunta

Yo intente introducir la autenticación de reaccionar aplicación nativa con redux, tras el envío de la acción login.El código en la Pantalla de inicio de Sesión:

const dispatch = useDispatch();
const auth = useSelector(state => state.authentication);

const onSubmit = (data: {email: string; password: string}) => {
  dispatch(loginUser(data));
  auth.isAuth && navigation.navigate('Home');
};
El código de la acción de inicio de sesión es :

export const loginUser = data => async dispatch => {
  try {
    const res = await axios({
      method: 'post',
      url: `${API_URl}/auth/login`,
      data,
    });
    dispatch({type: LOGIN_SUCCESS, payload: res.data});    
  } catch (error) {
    dispatch({type: GET_ERRORS, payload: error.response.data});
    dispatch({type: LOGIN_FAILED, payload: error.response.data});
  }
};
El código para el reductor está por encima de:

 case LOGIN_SUCCESS:
 case REGISTER_SUCCESS:
      return {
        ...state,
        user: payload.user,
        isAuth: true,
        message: null,
      };

Quiero navegar a la pantalla de 'Casa', pero esto no es hecho por primera vez tras el envío de acción login aunque he comprobado que el estado es cambiado : introduzca la descripción de la imagen de la consola después pulse el botón login

1

Mejor respuesta

0

Usted está llamando onSubmitque llama loginUser. En loginUser sin embargo, usted tiene una llamada a la API que es asíncrona, lo que significa que inmediatamente después de la llamada loginUser, auth.isAuth siempre será falsa.

Usted necesita para asegurarse de que auth.isAuth === true en componentDidMount de su pantalla de inicio de sesión, o usar algo como redux-observable para reaccionar a las acciones que están siendo enviados y realizar la navegación.

2021-11-24 01:04:12

Yo intente utilizar la verificación de autenticación y la navegación dentro de useEffect con la matriz de dependencias emty pero el problema calma.
smichi

Eche un vistazo a lo que los documentos de reaccionar de navegación decir con respecto a la autenticación de los flujos: reactnavigation.org/docs/auth-flow
romin21

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................