Я просмотрел большинство сообщений здесь о проблемах такого рода, но мне все еще не повезло. Вот как выглядит моё действие, это тот же пример, что и в файле readme с избыточным количеством npm:
const INCREMENT_COUNTER = 'INCREMENT_COUNTER';
function increment() {
return {
type: INCREMENT_COUNTER
};
}
function incrementAsync() {
return dispatch => {
setTimeout(() => {
// Yay! Can invoke sync or async actions with `dispatch`
dispatch(increment());
}, 1000);
};
}
Магазин настроен как показано ниже и передан провайдеру:
export default createStore(
rootReducer,
applyMiddleware(thunk)
);
<Provider store={store}>
Также пробовал использовать compose:
export default compose(
applyMiddleware(thunk)
)(createStore)(combineReducers({ ... }));
IncrementAsync отправляется из подключенного компонента, как показано ниже:
this.props.dispatch(incrementAsync);
Я все еще получаю Uncaught Error: Actions must be plain objects. Use custom middleware for async actions.
Версии NPM:
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-redux": "^5.0.7",
"react-router-dom": "^4.2.2",
"redux": "^4.0.0",
"redux-thunk": "^2.2.0"
Есть что-то, что я не правильно настраиваю?