Когда я запускаю сагу, у меня появляется эта ошибка «Ошибка: вызов: аргумент [объект] не является функцией» - PullRequest
0 голосов
/ 26 января 2019

Когда mi saga запускается моим создателем действия, у меня появляется ошибка

"Error: call: argument [object Object] is not a function
    at check (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:126468:13)
    at getFnCallDesc (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:127645:22)
    at call (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:127658:25)
    at loginRequestSaga$ (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:128869:38)
    at tryCatch (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:21519:19)
    at Generator.invoke [as _invoke] (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:21694:24)
    at Generator.prototype.(anonymous function) [as next] (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:21562:23)
    at next (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:127025:29)
    at proc (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:127000:5)
    at runForkEffect (blob:file:///95bb5b45-c4c5-44db-9d56-d4dcee551ace:127241:21)"

Я использую реагирующую версию 0.57 и последнюю версию Redx Saga

Это моя сага

import { put, call, select } from 'redux-saga/effects';
import { userServices } from '../../services';
import { userActions } from '../actions';
import { userConstants } from '../../constants/user.constants';

function* loginRequestSaga(action) {
  try {
    const data = yield call(userServices.fetchUser(action.credentials));
    yield put(userActions.loginSucess(data));
  } catch (e) {
    console.log(e);
  }
}

export const userSaga = {
  loginRequestSaga,
};

Заранее благодарю за помощь

1 Ответ

0 голосов
/ 26 января 2019

Я пытался ответить на ваш точный вопрос, но трудно понять, не видя остальной части вашего кода, так что простите догадки.

вызов (fn, args) принимает функцию, а затем некоторые аргументы, так чтоВы можете хотеть:

function* loginRequestSaga(action) {
  try {
    //next line has changed
    const data = yield call(userServices.fetchUser, action.credentials); 
    yield put(userActions.loginSucess(data));
  } catch (e) {
    console.log(e);
  }
}
...