Navigazione dopo dispatchin azione redux con reagiscono nativo

0

Domanda

Cerco di introdurre l'autenticazione di reagire app nativa con redux, dopo aver battuto l'azione di login.Il codice nella Schermata di Login:

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

const onSubmit = (data: {email: string; password: string}) => {
  dispatch(loginUser(data));
  auth.isAuth && navigation.navigate('Home');
};
Il codice di azione di login è :

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});
  }
};
Il codice per il riduttore di sopra:

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

Voglio passare a un'altra schermata 'Home', ma questo non è fatto per la prima volta dopo la spedizione del login azione anche se ho verificato che lo stato è cambiato : inserire immagine descrizione della console dopo aver premuto il pulsante di login

1

Migliore risposta

0

Si sta chiamando onSubmitla quale si chiede loginUser. A loginUser se avete una chiamata API che è asincrono, il che significa che dopo la chiamata loginUser, auth.isAuth sarà sempre false.

È necessario assicurarsi che auth.isAuth === true su componentDidMount della tua schermata di login, o usare qualcosa come redux-observable per reagire alle azioni che vengono spediti e di effettuare la navigazione.

2021-11-24 01:04:12

Io cerco di usare la verifica di autenticazione e di navigazione all'interno useEffect, con vasta gamma di dipendenze emty ma il problema zittito.
smichi

Avere uno sguardo a ciò che i documenti di reagire-navigazione dire per quanto riguarda l'autenticazione di flussi: reactnavigation.org/docs/auth-flow
romin21

In altre lingue

Questa pagina è in altre lingue

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