TypeError: (0, _dataActions.loginUser) не является функцией - PullRequest
0 голосов
/ 01 августа 2020

Это мое действие Redux asyn c для входа пользователя

export const loginUser = (userData, history) => (dispatch) => {
  dispatch({ type: LOADING_UI });
  return axios
    .post('/login', userData)
    .then((res) => {
      setAuthorizationHeader(res.data.token);
      dispatch(getUserData());
      dispatch({ type: CLEAR_ERRORS });
      history.push('/');
    })
    .catch((err) => {
      dispatch({
        type: SET_ERRORS,
        payload: err.response.data
      });
    });
};

export const getUserData = () => (dispatch) => {
    dispatch({ type: LOADING_USER });
    // send get request, if response exist, then dispatch SET_USER action
    return axios
    .get('/user')
    .then((res) => {
      dispatch({
        type: SET_USER,
        payload: res.data
      });
    })
    .catch((err) => console.log(err));
};

Я тестирую, что при вызове loginUser он отправляет LOADING_UI вместе с LOADING_USER и SET_USER с ожидаемой полезной нагрузкой, затем CLEAR_ERRORS

describe('dataActions', () => {
    const middlewares = [thunk];
    const mockStore = configureMockStore(middlewares);

    beforeEach(() => {
        moxios.install();
    });

    it('should dispatch an action to login a user', () => {
        moxios.wait(() => {
            const request = moxios.requests.mostRecent();
            request.respondWith({
                status: 200
            });
        });

        const expectedActions = [
            { type: LOADING_UI },
            { type: LOADING_USER },
            { type: SET_USER },
            { type: CLEAR_ERRORS }
        ]

        const store = mockStore({ userData: {}, history: {} })

        return store.dispatch(loginUser()).then(() => {
            expect(store.getActions()).toEqual(expectedActions);
        });
    })

    afterEach(() => {
        moxios.uninstall();
    })
})

Однако я получаю TypeError: (0 , _dataActions.loginUser) is not a function. Ошибка указывает на эту строку кода return store.dispatch(loginUser()).then(() => {. Я не знаком с этой ошибкой, поэтому приветствую любую помощь.

Кроме того, это предлагаемый logi c для проверки действия входа пользователя? Или мне вообще нужно проверить что-то другое? Спасибо.

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