Redux期望reducer成为一个函数

时间:2018-05-08 20:36:10

标签: reactjs redux react-redux redux-devtools

Redux扔了我:

  

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

来自索引:

const { store } = configureStore();
来自configureStore的

const store = createStore(rootReducer, initialState, devToolsEnhancer())

index.js

import React from 'react';
import { render } from 'react-dom';
import Root from './Root';
import './index.css';
import App from './whitesheet-components/App';
import registerServiceWorker from './registerServiceWorker';
import configureStore from './store/configureStore';

const { store } = configureStore();
const MOUNT_NODE = document.getElementById('root');

const load = Component =>
  render(
    <App>
      <Component store={store} />
    </App>,
    MOUNT_NODE,
  );

load(Root);

registerServiceWorker();

configureStore.js

import { createStore } from 'redux';
import { devToolsEnhancer } from 'redux-devtools-extension';
import rootReducer from './rootReducer';

const isDevelopment = process.env.NODE_ENV !== 'production';
export default function configureStore(initialState = {}) {
  const store = createStore(rootReducer, initialState, devToolsEnhancer());

  if (isDevelopment && module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('./rootReducer.js', () => {
      const nextReducer = require('./rootReducer').default; // eslint-disable-line global-require
      store.replaceReducer(nextReducer);
    });
  }

  return { store };
}

rootReducer

import mockReducer from './mockReducer';

export default { mockReducer };

mockReducer

export default function reducer(state = { hola: 'as' }, { type }) {
  switch (type) {
    default:
      return state;
  }
}

找不到错误。第一次使用devtools插件支持创建一个redux商店

1 个答案:

答案 0 :(得分:4)

您好像是在根减速器中导出对象而不是函数。

rootReducer

import mockReducer from './mockReducer';

// export default { mockReducer };
export default mockReducer;