Redux传奇将抓住()而不是付诸行动
我在Redux传奇将抓住()而不是付诸行动,redux,redux-saga,Redux,Redux Saga,我在userActions.js中有此操作: const receiveFilialData = (data) => { return { type: "RECEIVE_FILIAL_DATA", payload: data } } export default { receiveFilialData } 在我的登录组件中,我正在发送一个调度,以从一个传奇中获取一些数据: const Login = props => {
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\u FILIAIS\u请求时发出这个请求
// 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
文件中,fetchFilais
正在打印我的响应,但yield call()之后的console.log(data)
没有运行;控制流将进入捕捉(e)
并抛出:
类型:“FETCH_FILIAIS_FAILED”消息:“call:类型的参数
{context,fn}有未定义的或空的fn
“
为什么?修复,将LoginService.fetchFilais
改为LoginService.fetchFilais())
这不是一个函数,而是一个常量