Обзор очень высокого уровня
Действие - Действия могут обновлять состояние
{ type: ACTION_TYPE, somePayload: payload }
Резервное хранилище предоставляет функцию dispatch
, что в конечном итоге оборачивает создателя действия.
mapDispatchToProps = dispatch => {
return {
someWrappedAction: () => dispatch(actionCreatorFn()),
someOtherWrappedAction: val => dispatch(otherActionCreatorFn(val)),
}
}
useDispatch
Крюк возвращает dispatch
, и вы заверните действие самостоятельно
const dispatch = useDispatch()
<button onClick={() => dispatch(someActionCreatorFn())}>
Do Action
</button>
Редуктор
Редукторы формируют дерево состояний, начиная с редуктора root, передаваемого в хранилище редуксов. «Соединение» осуществляется (условно) через mapDispatchToProps
и connect
HO C. ( Теперь можно получить dispatch
из useDispatch
hook )
Редукторы - это функции pure , которые принимают два аргумента, текущее состояние и действие, и возвращают следующее состояние.
(currentState, action) => nextState
Когда вы отправляете создателя действия, он передает объект действия редуктору root. Объект действия пропускается через все дерево состояний, и любые редукторы, обрабатывающие действие type
, потребляют его.