反应redux-saga在哪里处理一些逻辑

时间:2019-12-03 13:55:00

标签: reactjs react-redux redux-saga

我在React中使用redux-saga。可以说我正在从服务器中获取一些需要外部客户端计算的数据。我的问题是放在哪里。 我的传奇看起来像这样:

function* someEffect(action){
    try{
        //removed none related stuff from the code.
        const data = yield call(someRequestFucntionThatUsesAxios, requestparams);
        if(data.status>=200&&data.status<300){
            yield put({type:SUCCESS, payload:data.data)};
        }
    catch(err){
    }
}

在上面的代码data.data中需要进行一些计算(大部分是基本数学运算)。现在,这些选项中的哪一个更有意义?
在我连接的组件componentDidUpdate方法中处理这些计算。
收到后立即处理它们(在分发到减速器之前)。
(我知道reducer不会发生这种行为,但是因为它不会杀死问问,)可以在我的reducer中处理它。

1 个答案:

答案 0 :(得分:1)

正如您所说的,reducer并不是修改API响应的最佳位置,两者都不是传奇。

我建议您在axios中使用transformResponse函数,以在从API返回响应后立即修改响应。

axios.get('/', {
   transformResponse: (data) => { 
      // do whatever you like with the data
   },
});