在redux动作函数中获取和调度

时间:2019-03-05 22:31:59

标签: reactjs redux jsx

在我的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))
                })
        }

我想念什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。首先,我要感谢关于此问题的3条评论。

我首先安装了redux-thunk。我在商店中添加了中间件:

import thunk from "redux-thunk";
...
export const store = createStore(
    rootReducer,
    applyMiddleware(thunk)
);

然后,我将存储导入到组件中并调度了动作函数。 (以前我是直接叫它的)

constructor(props) {
    ....
    store.dispatch(userActions.getAuthenticatedUser())

现在,提取和提取内的调度程序都可以正常工作。