Redux Saga собирается поймать () вместо того, чтобы положить действие - PullRequest
0 голосов
/ 01 марта 2020

У меня есть это действие в userActions.js:

const receiveFilialData = (data) => {
    return {
        type: "RECEIVE_FILIAL_DATA",
        payload: data
    }
}

export default {
    receiveFilialData
}

В моем компоненте входа в систему я делаю отправку для получения данных из саги:

const Login = props => {
  const dispatch = useDispatch()
  const filiais = useSelector(state => state.filiais)
  useEffect(() => {
    dispatch({type: 'GET_FILIAIS_REQUEST'})
  }, [dispatch, filiais])
}

В LoginService.js Я делаю HTTP-запрос:

const fetchFiliais = async () => {
   const response = await fetch(`${baseUrlApi.baseUrlApi}/filiais`);
   const responseJson = await response.json()
   return responseJson
}

export default { 
    fetchFiliais
}

И я создаю сагу, чтобы сделать этот запрос при GET_FILIAIS_REQUEST отправке:

// worker Saga: will be fired on GET_FILIAIS_REQUEST actions
function* fetchFiliais(action) {
    try {
        const data = yield call(LoginService.fetchFiliais())
        console.log(data)
        yield put({type: "RECEIVE_FILIAL_DATA", data});
    } catch (e) {
        yield put({type: 'FETCH_FILIAIS_FAILED', message: e.message})
    }
}

/*
  Starts fetchFiliais on each dispatched `GET_FILIAIS_REQUEST` action.
*/

function* mySaga() {
    yield takeEvery("GET_FILIAIS_REQUEST", fetchFiliais);
}

Если я поставлю console.log(response.json) в файле LoginService, fetchFiliais печатает мой ответ, но мой console.log(data) после yield call() не работает; поток управления собирается catch(e) и выбрасывает:

тип: «FETCH_FILIAIS_FAILED» сообщение: «вызов: аргумент типа {context, fn} имеет неопределенное значение или ноль fn»

Почему?

1 Ответ

0 голосов
/ 01 марта 2020

Исправлено, вместо LoginService.fetchFiliais()) ставится LoginService.fetchFiliais Это не функция, а констант

...