在我的react / redux项目中,我从动作中调用一个函数以从api中获取数据。提取启动api请求...但是反应无法识别dispatch()
function getAuthenticatedUser() {
....
return fetch("my.api/path", requestHeaders)
.then(response => handleResponse(response))
.then(response=>{
return response.json()
}).then(responseJson =>{
dispatch(requestSuccess(responseJson.user))
})
....
function requestSuccess(....
....
然后,我按照以下步骤包裹了退货调度。现在它不输出任何错误,但是fetch()不会启动任何api请求。 (在Network / XHR中没有请求)
return dispatch => {
return fetch("my.api/path", requestHeaders)
.then(response => handleResponse(response))
.then(response=>{
return response.json()
}).then(responseJson =>{
dispatch(requestSuccess(responseJson.user))
})
}
我想念什么?
答案 0 :(得分:0)
我找到了解决方案。首先,我要感谢关于此问题的3条评论。
我首先安装了redux-thunk。我在商店中添加了中间件:
import thunk from "redux-thunk";
...
export const store = createStore(
rootReducer,
applyMiddleware(thunk)
);
然后,我将存储导入到组件中并调度了动作函数。 (以前我是直接叫它的)
constructor(props) {
....
store.dispatch(userActions.getAuthenticatedUser())
现在,提取和提取内的调度程序都可以正常工作。