Решил следующий образом, в мой экшн authUser
// client\src\redux\regAuth\actions.js
import { history } from '../../index';
export const authUser = userData => dispatch => {
dispatch({ type: AUTH_REQUEST });
console.log('Inside checkAuthData action');
fetch('user/auth', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(userData)
})
.then(res => res.json())
.then(res => {
if (!res.status) {
return dispatch({
type: AUTH_FAILURE,
payload: res.message
});
}
dispatch({
type: AUTH_SUCCESS,
payload: res.token
});
console.log(history);
history.push('/personal');
// localStorage.setItem('token', res.token);
})
.catch(err => console.log(err));
}
Импортировал history браузера из корневого файла
// client\src\index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Router } from "react-router-dom";
import createBrowserHistory from 'history/createBrowserHistory';
import { Provider } from 'react-redux';
import App from './App.jsx';
import store from './redux/store';
export const history = createBrowserHistory();
ReactDOM.render(
<Router history={history}>
<Provider store={store}>
<App />
</Provider>
</Router>,
document.getElementById('root'));
И после dispath вызвал метод push у объекта history, какой же я красавчик, будущее веб-разработки нашей необъятной,
но тем не менее реквестирую у завсегдатаев варианты, как сделать лучше/оптимальней/красивей/изящней.