【问题标题】:Redux expecting the reducer to be a functionRedux 期望 reducer 是一个函数
【发布时间】:2018-10-18 21:29:04
【问题描述】:

Redux 把我扔了:

错误:预计减速器是一个函数。 在行

来自索引:

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 商店

【问题讨论】:

    标签: reactjs redux react-redux redux-devtools


    【解决方案1】:

    看起来您正在导出一个对象而不是根减速器中的一个函数。

    rootReducer

    import mockReducer from './mockReducer';
    
    // export default { mockReducer };
    export default mockReducer;
    

    【讨论】:

    • 谢谢!那行得通。如果我不能将多个减速器包装在一个对象中,如何导出它们?
    • @victor.ja 我建议每个 reducer 使用不同的文件
    • 你可以export default { mockReducer, secondReducer } 导入时做import { mockReducer, secondReducer } from './mockReducer'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2017-12-03
    • 1970-01-01
    • 2017-08-12
    • 2017-10-02
    • 2019-11-22
    相关资源
    最近更新 更多