gpt4 book ai didi

redux - 与redux reducer结合的axios响应拦截器

转载 作者:行者123 更新时间:2023-12-01 06:04:35 24 4
gpt4 key购买 nike

   import React from "react";
import axios from "axios";
import {push} from "react-router-redux";
import {actionTypes} from "../Patient/actions";
import {put, call} from "redux-saga/effects";
import {updatePermissionsAction} from "../Patient/actions"

// Add a response interceptor for getting permissions
axios.interceptors.response.use(function(response) {

console.log("in interceptorXXXXXXXXXXX");
if(response.headers.permissions == null) {
return response;
}
var permissions = response.headers.permissions.split(',');

permissions.forEach((permission, index, permissionArray) => {
permissionArray[index] = permission.trim();
});


put({
type: actionTypes.UPDATE_PERMISSIONS,
permissions: permissions
});
return response;
}, function (error) {
// Do something with response error

});

拦截器被调用,但 put 没有效果。当我的 sagas 调用工作正常的 reducer 时。

也许拦截器不能使用这种模式?有没有办法从拦截器调用 reducer ?

最佳答案

可能需要使用 applyMiddleware 将 saga 导出并添加到 redux,以便能够使用“put”来调度操作(?)。不完全确定在这种情况下如何实现。

我遇到了类似的情况,我可以通过导入商店来调度一个 Action ,然后使用 store.dispatch(myaction(data)); 调用该 Action 。 (我没有使用传奇)。

import {myAction} from 'actionCreators';
import store from 'store';

axios.interceptors.response.use(response => {

if('dataProperty' in response.data){

store.dispatch(myAction(response.data.dataProperty));

}
return response;

}

关于redux - 与redux reducer结合的axios响应拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com