Как получить доступ к реагирующим контекстам и / или хукам в редукционных действиях - PullRequest
0 голосов
/ 17 марта 2020

Может кто-нибудь сказать мне, если это хорошая идея, чтобы получить доступ к контекстам и / или перехватчикам в действиях с избыточностью или было бы лучше всегда передавать их как аргументы от компонентов.

В настоящее время единственный способ, которым я имею удалось сделать это, создав пользовательский крюк отправки:

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 });
    });
...