我一直在学习react-redux
,当我尝试将我的react组件与其连接时,出现以下错误。
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.8
和react-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中元素的顺序。由于Promise的原因,(([[component,reducer]))应该与reducer和component的import语句相同。正如您在下面的代码中所看到的那样。有关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);
},
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句