@laguna1132

Для чего нужен Redux-thunk?

Для чего нужен redux-thunk, если можно работать так:
import {START, SUCCESS, FAIL} from '../constants'

export default store => next => action => {
    const {callAPI, type, ...rest} = action
    if (!callAPI) return next(action)

    next({ 
        ...rest, type: type + START
    })
        fetch(callAPI)
            .then(res => res.json())
            .then(response => next({...rest, type: type + SUCCESS, response}))
            .catch(error => next({...rest, type: type + FAIL, error}))
}
  • Вопрос задан
  • 792 просмотра
Решения вопроса 1
gadfi
@gadfi
https://gamega.org
честно говоря странынй вопрос- задача тривиальна, но чтобы не отпугнуть масы было написано хорошо оттетсировнное решение, которое хватает на очень многие кейсы

function createThunkMiddleware(extraArgument) {
  return ({ dispatch, getState }) => next => action => {
    if (typeof action === 'function') {
      return action(dispatch, getState, extraArgument);
    }

    return next(action);
  };
}

const thunk = createThunkMiddleware();
thunk.withExtraArgument = createThunkMiddleware;

export default thunk;


для тех кто не любит лазить по исходникам гитхаба приведенный выше код это весь код redyx-thunk + есть еще тесты которые несколько длинее )
нет особой магии, не скажу что ваш пример лучше, но если вам нравится то используйте, но будьте готовы отвечать на вопрос колег, а че thunk или saga не взял ? его все занют, а в чем профит товего решения ?
это вопросы не конкертно по вашему коду, а вообще - вполне оправданые вопросы когда кто то тащит в проект свой велик вместо всем известного решения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы