Redux не вызывает другую функцию с диспетчеризацией - PullRequest
0 голосов
/ 10 марта 2020

У меня проблема с вызовом функции после вызова dispatch в redux-thunk. Он вызывает обычные функции, такие как 'console.log', но игнорирует объявленную функцию выше. Я застрял с ним и понятия не имею, как это можно решить.

Действия

export const loadUser = () => async (dispatch) => {
    if(localStorage.token) {
        setAuthToken(localStorage.token)
    }

    try {
        const res = await axios.get('/auth')

        dispatch({
            type: USER_LOADED,
            payload: res.data
        })
    } catch(err) {
        dispatch({
            type: AUTH_ERROR
        })
    }
}


export const login = (formData) => async(dispatch) => {
    const config = {
        headers: {
            'Content-Type' : 'application/json'
        }
    }

    try {
        const res = await axios.post('/auth', formData, config)

        dispatch({
            type: LOGIN_SUCCESS,
            payload: res.data
        })

        loadUser() // THIS FUNCTION IS IGNORED
        console.log('test') // but this one is called.
    } catch(err) {
        dispatch({
            type: LOGIN_FAIL,
            payload: err.response.data.msg
        })
    }
}```

1 Ответ

1 голос
/ 10 марта 2020

loadUser() возвращает thunk, поэтому вам нужно отправить его:

dispatch(loadUser());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...