Javascript 将redux observable集成到现有项目中-未捕获类型错误:无法读取属性';应用';未定义的
我试图将redux observable集成到现有的redux项目中,方法是绕过现有的拦截器进行简单的操作,并将其传递给一个新的epic,该epic当前应该只映射到一个新的操作类型。我得到了一个错误:Javascript 将redux observable集成到现有项目中-未捕获类型错误:无法读取属性';应用';未定义的,javascript,redux,rxjs,reactivex,redux-observable,Javascript,Redux,Rxjs,Reactivex,Redux Observable,我试图将redux observable集成到现有的redux项目中,方法是绕过现有的拦截器进行简单的操作,并将其传递给一个新的epic,该epic当前应该只映射到一个新的操作类型。我得到了一个错误: Uncaught TypeError: Cannot read property 'apply' of undefined at app.js:217853 at Array.map (<anonymous>) at merger (app.js:217852)
Uncaught TypeError: Cannot read property 'apply' of undefined
at app.js:217853
at Array.map (<anonymous>)
at merger (app.js:217852)
at MapSubscriber.project (app.js:217918)
at MapSubscriber../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber._next (app.js:225604)
at MapSubscriber../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (app.js:220361)
at Subject../node_modules/rxjs/_esm5/internal/Subject.js.Subject.next (app.js:220127)
at Function.epicMiddleware.run (app.js:217952)
at GenericProvider../src/bootstrap/bootstrapStore.js.exports.default [as $get] (app.js:299968)
at Object.getService (app.js:46915)
其中,registry.rootEpic
是使用BottleJS引导的:
bottle.factory('rootEpic', require('./bootstrapRootEpic').default);
bottle.factory('store', require('./bootstrapStore').default);
bootstrapRootEpic.js如下所示:
import { combineEpics } from 'redux-observable';
import { createExercisesEpic } from 'src/actions/epics';
export default function(registry) {
return combineEpics(createExercisesEpic);
}
import { mapTo } from 'rxjs/operators';
import { ofType } from 'redux-observable';
import {
CREATE_EXERCISES,
CREATE_EXERCISES_COMPLETED
} from 'src/actions/types';
export default function(action$) {
return action$.pipe(
ofType(CREATE_EXERCISES),
mapTo({type: CREATE_EXERCISES_COMPLETED})
);
}
createExercisePics
在src/actions/epics/index.js中定义:
export default {
createExercisesEpic: require('./createExercisesEpic').default
};
createExecuteSepic.js如下所示:
import { combineEpics } from 'redux-observable';
import { createExercisesEpic } from 'src/actions/epics';
export default function(registry) {
return combineEpics(createExercisesEpic);
}
import { mapTo } from 'rxjs/operators';
import { ofType } from 'redux-observable';
import {
CREATE_EXERCISES,
CREATE_EXERCISES_COMPLETED
} from 'src/actions/types';
export default function(action$) {
return action$.pipe(
ofType(CREATE_EXERCISES),
mapTo({type: CREATE_EXERCISES_COMPLETED})
);
}
我是否遗漏了某个步骤,或者可能是某个变量定义不正确或意外未定义?问题在于我试图使用此导入样式:
import { createExercisesEpic } from 'src/actions/epics';
它仅适用于作为函数导出的函数,而不是作为导出对象的命名特性导出的函数。我把它改成:
import epics from 'src/actions/epics';
export default function(registry) {
return epics.createExercisesEpic;
}
如果你能提供一个