Я пытаюсь получить форму состояния, подобную этой:
state = {
items: {
currentItem: object,
byId: object,
allIds: array,
fetching: bool
},
someOtherModule = { ... }
}
Я разбил свои редукторы предметов на два файла, стараясь, чтобы все не было в одном файле; обратите внимание, что это просто псевдокод, чтобы проиллюстрировать, что я делаю -
товар / редукторы / currentItem.js
const currentItem = (state = null, action) => ...
export default currentItem;
Я пробовал это так:
товар / редукторы / items.js
const byId = (state = {}, action) => ...
const allIds = (state = [], action) => ...
const fetching = (state = false, action) => ...
export default {byId, allIds, fetching};
элементы / редукторы / index.js
import { combineReducers } from 'redux';
import item from './item';
import currentItem from './currentItem';
export default combineReducers({ item, currentItem });
И я пробовал это так:
элементы / редукторы / items.js
export const byId = (state = {}, action) => ...
export const allIds = (state = [], action) => ...
export const fetching = (state = false, action) => ...
товар / редукторы / index.js
import { combineReducers } from 'redux';
import * as item from './item';
import currentItem from './currentItem';
export default combineReducers({ item, currentItem });
И я получаю «редуктор корневых элементов», который имеет только currentItem, но не «items».
Если я экспортирую combineReducers({byId, allIds, fetching})
в items.js, это работает, но добавляет уровень в мое состояние:
state = {
items: {
currentItem: object,
items: {
byId: object,
allIds: array,
fetching: bool
}
},