我在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中处理它。
答案 0 :(得分:1)
正如您所说的,reducer
并不是修改API响应的最佳位置,两者都不是传奇。
我建议您在axios中使用transformResponse
函数,以在从API返回响应后立即修改响应。
axios.get('/', {
transformResponse: (data) => {
// do whatever you like with the data
},
});