将Redux中的AJAX转换为Redux-observable

时间:2018-08-21 19:50:16

标签: reactjs redux redux-observable

因此,我正在查看redux-observable网站,以获取有关如何编写可以取消的ajax请求的示例。我不明白的是,redux-observable设置了要监听的动作,但随后却告诉我使用:

ofType(FETCH_USER),
  mergeMap(action => ajax.getJSON(`/api/users/${action.payload}`)

所以我的类型应该是FETCH_USER,所以我可以将它与一个动作绑定在一起,但是我的redux url和函数是在我的动作中处理的:

export function postNewSearch(searchObj, start, count){
    const url = `${ROOT_SEARCH_URL}?username=${getJWTusername()}&start=${start}&count=${count}`;
    let passObj = { ...searchObj, headers: {'Content-Type': 'application/json'}}
    return dispatch => {
        dispatch({type: 'POST_NEW_SEARCH_LOADING', isLoaded:false})
        return axios.post(url, passObj)
            .then(({data}) => {
                dispatch({type: 'POST_NEW_SEARCH_SUCCESS', isLoaded:true, data, searchID:data.queryHeaderKey})
            })
            .catch((err) => dispatch({type: 'POST_NEW_SEARCH_FAILURE', isLoaded: true, error:err}))
    };
}

所以我很困惑的是如何将URL从我的动作传递给可观察对象,因此它知道在史诗级中用于ajax请求的路径是什么?今天只是尝试使用rxjs和redux-observable设置我的项目,所以对我来说轻松一点。谢谢。

0 个答案:

没有答案