请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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



**// 为什么可以收到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)))

正在回答 回答被采纳积分+3

1回答

Nolan 2021-07-03 00:57:44

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

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


0 回复 有任何疑惑可以回复我~
  • “dispatch调用的时候会传入一个dispatch方法”   这句话里,dispatch方法是怎么传入进去的?
    回复 有任何疑惑可以回复我~ 2021-12-19 16:04:34
  • 同问,为什么在 dispatch 里面传递一个函数,它会自动调用里面的函数并传入一个 dispatch ,我官方文档也翻了,硬是没找到里面可以直接传一个函数
    回复 有任何疑惑可以回复我~ 2022-03-07 21:27:55
  • 这个是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 12:15:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信