Reactjs react redux error无法将类作为函数调用
我一直在学习Reactjs react redux error无法将类作为函数调用,reactjs,react-redux,Reactjs,React Redux,我一直在学习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
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
我错过了什么?任何帮助都将不胜感激,因为我无法解决这个问题
**编辑
我从路线中删除了对减速器的引用,它成功了。也许路线有问题
{
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中元素的顺序。然后([component,reducer])应该与Promise中的reducer和component的导入语句相同。正如您在下面的代码中看到的那样。因此问题与
react样板文件
有关
{
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);
},
您是否正在使用导出的组件。需要查看更多代码吗?是的,文件中是否还有其他
export
s?我只是通过react router在App.js中使用它。如果我从组件中删除react redux,它将正常工作。添加connect后,它开始给我此错误。这就是组件的全部内容NT。没有额外的导出语句。connect函数需要mapStateToProps arg或null
{
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);
},