使用 redux-saga 修改后端响应的最佳位置在哪里?

pes*_*tov 6 redux redux-saga

我有一个函数可以从后端准备错误,以便于在组件中显示 - 它被命名为prepareErrorMessages. 它接受来自后端的响应和一些默认的错误消息。

所以 - 在传奇中我有这个:

function* updateSomethingFlow(action) {
  try {
    const response = yield call(updateSomething, action.payload);
    if (response) {
      yield put({
        type: UPDATE_SUCCESS
      });
    }
  } catch (err) {    
    yield put({
      type: UPDATE_FAILURE,
      payload: prepareErrorMessages(err, 'Failed to update. Please, try again.')
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

那么 - 我在这里从后端修改错误是错误的吗?

或者在减速机中这样做更好?

case UPDATE_FAILURE:
  nextState = {
    ...state,
    loading: false,
    errors: prepareErrorMessages(payload, 'Failed to update. Please, try again.'),
  };
break;
Run Code Online (Sandbox Code Playgroud)

而且 - 为什么在那里更新更好?

var*_*ons 2

个人认为在reducer中做是对的。

这就是您处理响应的地方。动作创建者应该只设置有效负载,它可以是一些静态数据或承诺。

不明白为什么你不能在那里转换/修改接收到的数据。