Я получаю ошибку «промежуточное ПО не является функцией» при запуске этого кода.Средство промежуточного ПО Redux не определено
import 'babel-core/polyfill';
import { thunkMiddleware, Provider } from 'redux-thunk';
import createLogger from 'redux-logger';
import { createStore, applyMiddleware } from 'redux';
import { fetchDistricts, fetchSchools } from './actions.es6.js';
import rootReducer from './reducers.es6.js';
// import App from './components/App.es6.js';
const logger = createLogger({
level: 'info',
collapsed: true,
predicate: (getState, action) => {action.type; }
});
const createStoreWithMiddleware = applyMiddleware(
thunkMiddleware,
logger
)(createStore);
const store = createStoreWithMiddleware(rootReducer);
store.dispatch(fetchDistricts('California')).then(state =>
{
var districts = store.getState().districtsByState['California'].districts;
var fetchSchoolsDfds = [];
for(var i = 0; i < districts.length; i++) {
fetchSchoolsDfds.push(store.dispatch(fetchSchools(districts[i].id)));
}
}
);
let rootElement = document.getElementById('root');
Это в ES6, и я транслирую с помощью Babel. Я могу опубликовать скомпилированный код, если вы хотите, но он очень длинный.
Почему я получаю сообщение об ошибке?
EDIT
Хорошо, я вскочил и посмотрел на transpiled JS. Похоже, что эта функция -
var createStoreWithMiddleware = _redux.applyMiddleware(_reduxThunk.thunkMiddleware, logger)(_redux.createStore);
и _reduxThunk не имеют свойство thunkMiddleware. В консоли, когда я утешаю бревно из _reduxThunk, я вернусь этот
function thunkMiddleware(_ref) {
var dispatch = _ref.dispatch;
var getState = _ref.getState;
return function (next) {
return function (action) {
return typeof action === 'function' ? action(dispatch, getState) : next(action);
};
};
}
Так выглядит _reduxThunk IS thunkMiddleware. Я предполагаю, что это ошибка бабуля - почему это так неправильно?
Сторона примечания: у вас есть функция стрелки no-op для 'предикат'. – JMM