我菜了,为什么在这里写一个函数,入参就可以收到dispatch

来源:10-12 用redux-thunk管理登录状态

似水流年0709

2021-06-30



**// 为什么可以收到dispatch????**

export const login = (form:AuthForm)=>(dispatch:AppDispatch)=>auth.login(form).then(user=>dispatch(setUser(user)))

export const register = (form: AuthForm)=>(dispatch:AppDispatch)=>auth.register(form).then(user=>dispatch(setUser(user)))

export const logout = ()=>(dispatch:AppDispatch)=>auth.logout().then(()=>dispatch(setUser(null)))

export const bootstrap = ()=>(dispatch:AppDispatch)=>bootstrapUser().then(user=>dispatch(setUser(user)))
写回答

1回答

Nolan

2021-07-03

这里确实比较绕,这里形参是dispatch,是因为下面的这一句,这个dispatch调用的时候会传入一个dispatch方法。这个需要仔细想一想,形参和实(传)参

(form: AuthForm) => dispatch(authStore.register(form)),


0
3
我很容易上手
回复
慕妹6538969
这个是redux-thunk 中间件在拦截 action 的时候发现传入的是 fn 类型的action,所以才返回函数并传入一个 dispatch if (typeof action === 'function') { // Inject the store's `dispatch` and `getState` methods, as well as any "extra arg" return action(dispatch, getState, extraArgument) }
2022-04-08
共3条回复

React17+Hook+TS4 优质实践,仿 Jira 企业级项目

解锁 React17 高阶用法,轻松应对大型复杂长周期项目

2691 学习 · 1236 问题

查看课程