非常高级的概述
动作 - 动作可以更新状态
{ type: ACTION_TYPE, somePayload: payload }
redux 存储公开了一个 dispatch 函数,该函数最终包装了一个动作创建者。
mapDispatchToProps = dispatch => {
return {
someWrappedAction: () => dispatch(actionCreatorFn()),
someOtherWrappedAction: val => dispatch(otherActionCreatorFn(val)),
}
}
useDispatch Hook 返回 dispatch 并且你自己包装动作
const dispatch = useDispatch()
<button onClick={() => dispatch(someActionCreatorFn())}>
Do Action
</button>
减速器
reducer 形成一个状态树,从传递给 redux 存储的根 reducer 开始。 “连接”(通常)通过mapDispatchToProps 和connect HOC 进行。 (现在可以从useDispatch钩子中获取dispatch)
Reducer 是纯函数,它接受两个参数,当前状态和一个动作,并返回下一个状态。
(currentState, action) => nextState
那么 mapDispatchToProps 中的每个 dispatch 是如何连接到适当的 reducer...
当您调度一个动作创建者时,它会将动作对象传递给根减速器。 action 对象通过整个状态树传递,任何处理 action type 的 reducer 都会使用它。