运行此部分时返回错误“Actions must be plain objects. Use custom middleware for async actions.
”
这是我的代码:
export function login(data) {
const login_data = new FormData();
login_data.append('username', data.username);
login_data.append('password', data.password);
login_data.append('grant_type', 'password');
login_data.append('scope', 'read');
return dispatch => {
console.log("LOGIN DISPATCHER");
axios.defaults.headers.common['Authorization'] = 'Basic ' + btoa('mobapp:SSSSS');
return axios.post('http://172.16.79.25:9999/oauth/token', login_data)
.then(res => {
const token = res.data.access_token;
localStorage.setItem('access_token', token);
setAuthorizationToken(token);
dispatch(setCurrentUser(token));
});
}
}
console.log(“LOGIN DISPATCHER”)永远不会在此代码中运行!!
答案 0 :(得分:3)
你的动作实际上返回一个函数,而不是“普通”redux需要的普通对象。
您需要添加一些中间件来处理此类操作,例如redux-thunk
。
以下是示例设置:
import thunk from 'redux-thunk';
const store = createStore(
reducers,
applyMiddleware(thunk)
);