Очистить состояние реагирующего компонента при выходе - PullRequest
0 голосов
/ 14 января 2020

У меня есть одностраничное приложение и компонент реакции, который загружает пользовательские данные. После выхода эти данные сохраняются. Как мне go очистить состояние этого компонента, кроме очистки моего состояния притока? Отдельно ли очищается состояние отдельных компонентов в редукторном редукторе?

Сейчас я обрабатываю сброс состояния редукции следующим образом:

// redurs / auth. js

export default function authReducer(state = initialState, action) {
    switch (action.type) {
        ... 
        case AUTH_LOGOUT_USER:
            return Object.assign({}, state, {
                // this resets redux state, but not react state?
                isAuthenticated: false,
                isAdmin: false,
                token: null,
                userName: null,
                organization: null,
                logo: null,
                statusText: 'You have been successfully logged out.'
            });
        ...
        default:
            return state;
    }
}

// action / auth. js

export function authLogout() {
    sessionStorage.removeItem('token');
    sessionStorage.removeItem('user');
    return {
        type: AUTH_LOGOUT_USER
    };
}

// component.jsx

...
userData=fetchUserData()
this.setState(userData)
...

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Вам просто нужно сбросить магазин излишков. Внутреннее состояние компонента будет автоматически очищено при размонтировании компонента.

0 голосов
/ 14 января 2020

Просто установите ваше Component состояние обратно к его начальному значению в вашей logout функции:

const logout = () => {
    this.props.authLogout() // your redux action
    this.setState({}) // set this to whatever your initial state is
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...