Javascript 动作必须是普通对象。使用自定义中间件进行异步操作。反应

Javascript 动作必须是普通对象。使用自定义中间件进行异步操作。反应,javascript,reactjs,redux,Javascript,Reactjs,Redux,请帮帮我,这四天来一直困扰着我,我无法解决 我正在使用react和redux从promse中提取一些数据 我知道我已经安装了thunk,但我不知道如何使用它。 然而,我的动作又回来了:动作必须是普通对象。使用自定义中间件进行异步操作 行动: export const getShifts = () => dispatch => { console.log('Fetching list of shifts for user...'); const request = API.get("S

请帮帮我,这四天来一直困扰着我,我无法解决

我正在使用react和redux从promse中提取一些数据 我知道我已经安装了thunk,但我不知道如何使用它。 然而,我的动作又回来了:动作必须是普通对象。使用自定义中间件进行异步操作

行动:

export const getShifts = () => dispatch => {
console.log('Fetching list of shifts for user...');
const request = API.get("StaffAPI", "/shifts", {
    headers: {
           'Accept': 'application/json',
           'Content-Type': 'application/json',
    }
})
.then(response =>
    dispatch({type: 'SHIFTS_LOAD_SUCCESS', response})
)
.catch(err =>
    dispatch({type: 'SHIFTS_LOAD_FAIL'})
)
}
减速器:

import _ from "lodash"
import { getShifts} from '../actions';

export default function(state = {}, action) {
switch(action.type){
 case SHIFTS_LOAD_SUCCESS:
    return { ...state, rota: action.response };
  }
 }
组成部分:

 componentWillMount() {
  this.props.getShifts();
  }
  renderPosts(){

console.log(this.props);
 return (

<div>
 <button onClick={this.logOut}>LogOut</button>
  <h4>hello{this.props.rotaData}</h4>
</div>
);


}


render() {
  return (
  <div className="row">
  {this.renderPosts()}

  </div>
);
}
}

function mapStateToProps(state){
 return{ rota: state.response };
}

 export default connect(mapStateToProps, {getShifts: getShifts}) (StaffRota);
componentWillMount(){
this.props.getShifts();
}
renderPosts(){
console.log(this.props);
返回(
注销
你好{这是props.rotaData}
);
}
render(){
返回(
{this.renderPosts()}
);
}
}
函数MapStateTops(状态){
返回{rota:state.response};
}
导出默认连接(mapStateToProps,{getShifts:getShifts})(StaffRota);

我对这一切都不熟悉,如果简单的话,请原谅我。知道其他人已经解决了我的问题。

您在创建店铺时是否设置了
redux thunk
?应该是这样的

import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';

// Create store
const store = createStore(yourReducers, applyMiddleware(thunk));
请仔细检查thunk文档