Redux Thunk Middleware:未传入dispatch时,action creator为何能访问它?
Redux中
fetchUsers的dispatch传入逻辑 - 这是Redux Thunk中间件的核心功能:当你调用
store.dispatch(fetchUsers())时,Thunk会拦截这个请求。 - 因为
fetchUsers返回的是一个函数(而非普通action对象),Thunk会自动把dispatch(以及getState)作为参数传入这个返回的函数中。 - 你定义的
fetchUsers是一个高阶函数,它内部返回的匿名函数就能直接获取Thunk传入的dispatch,从而在异步请求完成后分发对应的action。
简单总结:Thunk中间件的作用就是处理返回函数的action creator——它会自动注入dispatch和getState并执行该函数;如果是普通action对象,则直接传递给reducer处理。你截图里的store已经配置了thunkMiddleware,这正是整个机制生效的前提,没有它的话直接dispatch函数会触发Redux的报错(Redux默认只接受纯action对象)。
内容的提问来源于stack exchange,提问作者brunshte
相关产品推荐
相关产品推荐

