Изменение состояния Redux не перерисовывает страницу после перенаправления - PullRequest
0 голосов
/ 23 сентября 2019

У меня проблема в том, что изменение состояния 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?

...