Redux Middleware с диспетчерским действием не работает - PullRequest
0 голосов
/ 08 июля 2019

Я использую Redux для асинхронных операций, но он не будет работать.

Эта функция работает, и это просто fetch

export function getDataMiddleware({ dispatch }) {
    return function (next) {
        return function (action) {
            if (action.type === GET_DATA) {
                return fetch(`https://jsonplaceholder.typicode.com/posts`)
                .then(res => res.json())
                .then(
                   data => dispatch({ type: 'DATA_LOADED', payload: data }),
                   err => dispatch({ type: 'LOAD_DATA_FAILURE', err })
                );
            }
            return next(action);
        };
    };
}

Эта функция не работает при использовании

// Redux Thunk 
export function getDataMiddleware({ dispatch }) {
    return function (next) {
        return function (action) {
            if (action.type === GET_DATA) {
                return dispatch => fetch(`https://jsonplaceholder.typicode.com/posts`) // Redux Thunk handles these
                .then(res => res.json())
                .then(
                   data => dispatch({ type: 'DATA_LOADED', payload: data}),                    err => dispatch({ type: 'LOAD_DATA_FAILURE', err })
                 );
            }
            return next(action);
        };
    };
}

Что не так со вторым подходом, почему он не работает?

...