Redux Saga在调度操作时不触发API调用

Redux Saga在调度操作时不触发API调用,redux,generator,redux-saga,Redux,Generator,Redux Saga,我以前使用过redux saga,但我对它还是相当陌生的。无论如何,我似乎在下面的代码中遇到了问题 在顶部,您将看到我用来触发此AJAX请求的action creatorRedux正在正确地调度此操作,并在我的控制台中记录LOAD\u USER\u请求类型,但是功能链停止在那里。在下面的代码中,您将看到LOAD\u USER\u REQUEST应该调用loadUserDetails生成器,然后该生成器应该调用userLogin,并在我的操作创建者中接收有效负载 让我知道,如果我可以提供任何额外的

我以前使用过redux saga,但我对它还是相当陌生的。无论如何,我似乎在下面的代码中遇到了问题

在顶部,您将看到我用来触发此AJAX请求的action creatorRedux正在正确地调度此操作,并在我的控制台中记录
LOAD\u USER\u请求
类型
,但是功能链停止在那里。在下面的代码中,您将看到
LOAD\u USER\u REQUEST
应该调用
loadUserDetails
生成器,然后该生成器应该调用
userLogin
,并在我的操作创建者中接收有效负载

让我知道,如果我可以提供任何额外的信息,可能会有所帮助。提前感谢:)

//加载用户请求的操作创建者。
export const getExistingUser=({email=)tt@gmail.com,密码='12345'}={}=>({
类型:加载用户请求,
有效负载:{电子邮件,密码}
})
//loadUserDetails Saga中使用的API调用
export const userLogin=({email=)tt@gmail.com,密码='12345'}={}=>{
返回axios.post(`${API}auth/login`{
电子邮件
暗语
})
。然后(res=>{
控制台日志(res);
setItem('token',res.data.token);
让user=res.data.user;
console.log(用户);
返回用户;
})
.catch(err=>newerror('userLogin err',err));
}
//传奇
//loadUserDetails Saga-应使用action creator提供的有效负载调用userLogin上方的fn
函数*loadUserDetails(有效负载){
const user=yield call(userLogin(payload));
yield put({type:LOAD_USER_SUCCESS,USER});//通过指定操作类型和用户详细信息,对reducer产生影响
}
导出函数*watchRequest(){
收益率*takeLatest(加载用户请求,加载用户详细信息);
}

首先,您的saga入口配置是否良好?您应该在存储创建中添加saga中间件,并且不要忘记通过
runSaga
方法调用saga流程管理器

其次,为什么要将生成器实例重新委托给上一级?也许这意味着
产生takeLatest(加载用户请求,加载用户详细信息)
产生*
运算符?Is具有完全不同的语义

第三,通过API引用,
call
effect接受函数或生成器引用,但提供promise对象。也许这意味着
constuser=yield call(()=>userLogin(payload))
const user=yield调用(用户登录,有效负载)