У меня проблема в том, что изменение состояния Redux не перерисовывается немедленно, поэтому вновь перенаправленная страница после входа отображает страницу на основе предыдущего состояния Redux.
Вот функция, которая выполняетвход в систему:
export const Login = () => async (dispatch, getState) => {
...
return dispatch(syncCurrentUser(response.data));
}
syncCurrentUser фактически переводит пользовательские данные в состояние Redux:
export function syncCurrentUser(data=null) {
return (dispatch) => {
return dispatch({
type: SET_CURRENT_USER,
user: data
});
}
}
После выполнения всех заданий Redux яперенаправить пользователя на другую страницу, используя:
this.props.history.push("/user/dashboard");
Но после того, как я попал на эту страницу, все элементы, отображаемые на этой странице, основывались на предыдущем состоянии Redux «user».
Если я нажимаю кнопку обновления F5 на этой новой странице, она перерисовывается, тогда все корректно отображается с новым состоянием Redux «user».
способ отображения Reduxсостояния во внешнем интерфейсе выглядят следующим образом:
<li className="list-group-item">{this.props.user.name}</li>
...
function mapStateToProps(state) {
return {
user: state.auth.user
};
}
const mapDispatchToProps = dispatch => {
return {
};
};
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(AdminDashboard));
Как мне исправить это так, чтобы он сразу отображался при изменении состояния Redux?