I use BrowserRouter in my React/Redux app, so I don't create history object nor pass it to BrowserRouter, as it handles its own history. At the moment, I mocked login functionality, and this is function in Login component (which calls login thunk in authActions):
handleSubmit = (e) => {
        e.preventDefault();
        this.props.authActions.login({
            email: this.state.email,
            password: this.state.password
        });
    };AuthActions are mapped to component props:
function mapDispatchToProps(dispatch) {
    return {
        authActions: bindActionCreators(authActions, dispatch)
    }
}And this is login thunk in authActions:
export function login(userData) {
    return function (dispatch) {
        if(userData.email === 'test@test.com' && userData.password === 'pw'){
            sessionStorage.setLoggedUser(JSON.stringify(userData));
            dispatch(loginSuccess(userData));
            this.context.router.history.push('/');
        } else {
            dispatch(loginFail());
        }
    }
}I get error that context is undefined, but after successful Login, app navigates to "/" route. I passed context as second parameter to constructor and super methods in Login component.
class Login extends Component {
    constructor(props, context) {
        super(props, context);Now, my question is. What is the best place to do location changes? Component itself, or in actions (thunks)? I mention thunks for purpose, as I will change code and have some async calls to backend. How to access history object when using `BrowserRouter, in both component and actions bound to it?
 
    