"期望减速器成为一种功能。"仅在服务器上

时间:2017-06-05 09:55:13

标签: reactjs redux

我正在构建一个同构应用程序,我的商店和减速器有一个奇怪的问题。当我在客户端商店导入我的Reducer时,一切正常:

import reducers from '../Reducers';
...
let store = createStore(reducers, initial, composeEnhancers(applyMiddleware(...middleware)));
export default store;

但是当我尝试在服务器上做同样的事情时:

import reducers from '../source/js/Reducers';

我在控制台中收到错误

  

错误:期望reducer成为一个函数。

我的减速机是这样的:

import { INSERT_POST, INSERT_CONTENT, BUMP_PAGE, FETCH_COLLECTION } from '../Actions/Content';

const defaultState = {
  currentPage: 0,
  nextPage: 1,
  content: [],
  fetched: []
};

const reducer = (state = defaultState, action) => {
  switch (action.type) {
    case INSERT_POST:
      return { ...state, content: [ ...state.content, action.payload ], fetched: [ ...state.fetched, action.url ] };
    case INSERT_CONTENT:
      const newState = {...state};
      newState.content[action.payload.id].content = action.payload.data;

      return newState;
    case `${FETCH_COLLECTION}_SUCCESS`:
      return { ...state, fetched: [ ...state.fetched, action.meta.previousAction.payload.request.url ]};
    case BUMP_PAGE:
      return { ...state, currentPage: state.nextPage, nextPage: ++state.nextPage };
    default:
      return state;
  }
};

export default reducer;

...

import { START_TRANSITION, END_TRANSITION, TOGGLE_TRANSITION } from '../Actions/Transitions';

const defaultState = {
  loaded: true
};

const reducer = (state = defaultState, action) => {
  switch (action.type) {
    case START_TRANSITION:
      return { ...state, loaded: false };
    case END_TRANSITION:
      return { ...state, loaded: true };
    case TOGGLE_TRANSITION:
      return { ...state, loaded: !state.loaded };
    default:
      return state;
  }
};

export default reducer;

主减速器:

import { combineReducers } from 'redux';

import Transitions from './Transitions'
import Content from './Content';

export default combineReducers({
  Transitions,
  Content
});

我不知道该如何处理。这是我第一次看到这样的错误。我该怎么办?

0 个答案:

没有答案