У меня есть это действие в 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
»
Почему?