Задать вопрос
@GaserV

Почему данные из одного редьюсера заменяются у всех?

Привет! Такая проблема. Юзаю redux-pack. Есть 3 редьюсера. И когда я делаю fetch для одного редьюсера, то данные сэтятся во все? Почему так происходит? Написал хэлпер себе (defaultHandler), который выполняет эти все действия:
import { handle } from 'redux-pack'

export default function handler(state, action) {
	const { payload } = action

	return handle(state, action, {
		start: prevState => ({ ...prevState, loading: true, errors: null }),
		finish: prevState => ({ ...prevState, loading: false }),
		failure: prevState => ({ ...prevState, errors: payload }),
		success: prevState => ({ ...prevState, data: payload.data }),
	})
}


Все три редьюсера одинаковы, отличаются лишь запросом. Один из них:
import axios from 'axios'
import { defaultHandler } from '../../helpers'

const FETCH = 'FETCH'

export const fetchDialogs = () => ({
	type: FETCH,
	promise: axios.get('https://next.json-generator.com/api/json/get/4k7bLUgzN'),
})

const initialState = {
	data: [],
	loading: false,
	errors: null,
}

function reducer(state = initialState, action) {
	switch (action.type) {
		case FETCH:
			return defaultHandler(state, action)

		default:
			return state
	}
}

export default reducer
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@davidnum95
Action type одинаковый везде.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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