Может кто-нибудь сказать мне, если это хорошая идея, чтобы получить доступ к контекстам и / или перехватчикам в действиях с избыточностью или было бы лучше всегда передавать их как аргументы от компонентов.
В настоящее время единственный способ, которым я имею удалось сделать это, создав пользовательский крюк отправки:
function useDispatchWithHooks () {
const dispatch = useDispatch();
const hooks = {...useContext(AlertContext), ...useContext(WindowContext), ...useTranslation(), etc... };
return (action) => {
if (typeof action === 'function') {
return action({ ...hooks }, dispatch);
}
return dispatch(action);
}
}
Использование:
const dispatch = useDispatchWithHooks();
dispatch (({showAlert, translate}, dispatch) => {
showAlert(translate('alert'), translate('createdTab'));
dispatch( { type: INITIALIZE_TAB });
});