Перенаправление страницы с использованием response-router-dom / реагирует на маршрутизатор v4 вне Компонента - PullRequest
0 голосов
/ 04 мая 2018

У меня есть приложение React-Redux, и я должен написать общий обработчик ошибок для всех ошибок, возвращаемых с сервера. В настоящее время для маршрутизации я использую «response-router-dom». Я использую withRouter внутри компонентов. Но я могу перенаправить внутри действия? Или как это можно сделать?

Я видел ссылку Как перейти к истории в React Router v4? . Должен ли я использовать response-router-redux? Или это можно сделать с помощью response-router-dom. Может ли кто-нибудь помочь, пожалуйста?

export function loginDetails(details) {   
return function (dispatch,getState) { 
    gateway.loginUser(details.username, details.password).then(
        response => {
          dispatch({type: AUTH_USER});             
          dispatch(fetchCompanies());              
      },
       error =>{
           handleError(error, dispatch);               
       })
}
}

handleError = (error, dispatch) =>{    
switch(error.response.status){
    case XX: 
        //Want to redirect to '/' here           
        break;
    case YY:    
        //Want to redirect to '/login' here        
        break;
    default:          
        break;
}
}

1 Ответ

0 голосов
/ 04 мая 2018

в каком компоненте вы используете это? Например, если кто-то не вошел в систему, я бы просто проверил это с помощью mapStateToProps, а если он не вошел в систему, затем импортируйте и используйте Redirect реагирующего маршрутизатора для отправки их на страницу входа в систему

В зависимости от того, как настроен ваш магазин, он может выглядеть следующим образом:

    const mapStateToProps = state => ({
       loggedIn: state.auth.user !== null
    })

Тогда ваше условие в любом компоненте, который вы делаете, проверяет

    if(!loggedIn){
      return <Redirect to="/login" />
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...