同一文件中login导出函数调用loadUser导出函数未执行问题求助
问题分析与解决
核心问题
你直接调用loadUser()并不会执行内部逻辑,因为loadUser是一个Redux Thunk函数——它返回的是一个接收dispatch参数的异步函数,而非直接执行的代码。你现在只调用了外层的loadUser(),拿到了内部的函数但没有触发它。
另外你的代码里还有个拼写错误:login函数中的config对象里,heraders应该是headers,这个错误会导致登录请求的请求头设置失败,可能间接影响后续流程。
修复方案
方案1:传入dispatch执行loadUser
在login函数的try块里,把dispatch传给loadUser()返回的函数:
console.log('Calling load user here?'); // 把dispatch传入,触发内部逻辑 loadUser()(dispatch); console.log('loadUser should run now');
方案2:直接通过store dispatch调用(如果能拿到store实例)
如果你的代码中能直接获取Redux store实例,也可以这样写:
store.dispatch(loadUser());
修正拼写错误
把config里的heraders改成headers:
const config = { headers: { 'Content-Type': 'application/json' } }
验证逻辑
修改后,loadUser内部的console.log('Is this running')应该会正常输出,同时能正确发起获取用户信息的请求并触发对应的Redux action。
内容的提问来源于stack exchange,提问作者Kristofer
相关产品推荐
相关产品推荐

