Redux:不修改商店的异步操作

时间:2016-08-11 16:33:16

标签: reactjs redux redux-thunk

从redux-thunk中间件发送http请求是否是个好主意,即使这个http请求没有修改商店? 以下是一些解释我的意思的代码:

export const CONFIRM_UPLOAD_REQUEST = 'CONFIRM_UPLOAD_REQUEST';
export const CONFIRM_UPLOAD_SUCCESS = 'CONFIRM_UPLOAD_SUCCESS';
export const CONFIRM_UPLOAD_FAILURE = 'CONFIRM_UPLOAD_FAILURE';

function _confirmUpload() {
  return {
    [CALL_API]: {
      types: [CONFIRM_UPLOAD_REQUEST, CONFIRM_UPLOAD_SUCCESS, CONFIRM_UPLOAD_FAILURE],
      requestMethod: 'POST',
      endpoint: `upload/confirm`
    }
  };
}

export function confirmUpload() {
  return (dispatch) => dispatch(_confirmUpload());
}

当我发送此操作时,我的中间件将执行 POST上传/确认请求。它不会修改商店(因此我没有CONFIRM_UPLOAD_SUCCESS的减速器)。

问题:这种方法有多糟糕?我必须直接执行http请求(不是通过中间件)?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,是的,这是不好的做法,因为即使其属性没有改变,组件也会被重新渲染