我一直在尝试将redux实现到我的React应用程序中并使用this guide进行ajax调用。
Example Actions Example Container
除了我收到错误之外,我的代码与他的代码几乎相同:
未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作
我查看了他的代码并且他没有应用中间件或做任何与众不同的事情
我的异步动作
import axios from 'axios';
const GET_POSTS = 'GET_POSTS';
const getPosts = () => {
const request = axios.get('/url');
return { type: GET_POSTS, payload: request };
};
我的容器用量
import { getPosts } from './actions';
//other stuff
const mapDispatchToProps = dispatch => {
return {
getPosts: () => {
dispatch(getPosts()).then(response => {
console.log(response);
});
}
};
};
//connect functions to component
我的猜测是他的例子不起作用?我已经全神贯注地寻找解决方案,并且我理解dispatch会返回函数返回的任何内容(在这种情况下,这不是一个承诺)。据我所知,如果我希望函数返回一个promise,我将不得不使用中间件。我对目前是否做错事(以及那是什么)感到困惑,或者是否是他的例子被打破了?谢谢你的帮助
答案 0 :(得分:4)
在指南中,您将使用中间件。请检查'步骤8':
...
import promise from 'redux-promise';
...
//Configure middleware w/ redux-promise for AJAX requests
const createStoreWithMiddleware = applyMiddleware(
promise
)(createStore);