React-Redux 错误不能将类作为函数调用



我一直在学习react-redux,当我尝试将我的反应组件与它连接时,我收到以下错误。

connect.js:41 Uncaught (in promise) TypeError: Cannot call a class as a function
at _classCallCheck (connect.js:41)
at Connect (connect.js:125)
at eval (combineReducers.js:37)
at Array.forEach (<anonymous>)
at eval (combineReducers.js:34)
at Map.withMutations (immutable.js:1355)
at eval (combineReducers.js:33)
at computeNextEntry (<anonymous>:2:27469)
at recomputeStates (<anonymous>:2:27769)
at <anonymous>:2:31382 

我正在使用react-redux version 4.4.8react-boilerplate.我使用的代码是

import React from 'react';
import { connect } from 'react-redux';
 class Something extends React.Component {
 render(){
 return(
       <div>
          <p>It is working</p>
       </div>
      );
    }
  }
 export default connect()(Something);

我在这里错过了什么?任何帮助将不胜感激,因为我无法找出问题所在。

**编辑

我从路线中删除了对减速器的引用,它起作用了。也许路线有问题。

 {
  path: '/something',
  name: 'something',
  getComponent(nextState, cb) {
    const importModules = Promise.all([
      import('./Something'),
    //  import('./Something/reducer')
    ]);
    const renderRoute = loadModule(cb);
    importModules.then(([component]) => {
      //injectReducer('something', reducer.default);
        renderRoute(component);
    });
    importModules.catch(errorLoading);
  },

我找到了解决方案。问题是数组importModules.then([component, reducer])中的元素顺序应该与reducer和component的import语句相同,因为Promise。正如我们在下面的代码中看到的。所以这个问题与react-boilerplate有关。

{
 path: '/something',
 name: 'something',
 getComponent(nextState, cb) {
   const importModules = Promise.all([
  import('./Something'),
  import('./Something/reducer')
]);
const renderRoute = loadModule(cb);
importModules.then(([component, reducers]) => {
  injectReducer('something', reducer.default);
    renderRoute(component);
});
importModules.catch(errorLoading);
},

最新更新