1

我的行动:

const someAction = () => {
  return {
    [RSAA]: {
      types: [
        SOME_REQUEST,
        SOME_SUCCESS,
        SOME_FAILURE,
      ],
      endpoint: ...,
      method: 'POST',
    }
  };
};

我用以下方式调用它:

this.props.someAction();

一切正常,我能够处理减速器中的数据。 问题是,我可以在调用函数时以某种方式获取函数的结果吗?

我的意思是这样的:

this.props.someAction().then( //success ).catch( //error );
4

1 回答 1

1

简单地说,redux-api-middleware经历了以下步骤(更多细节在这里):

  1. 调度 SOME_REQUEST 操作
  2. 向您的端点发出 POST 请求
  3. 如果请求成功,则调度 SOME_SUCCESS 动作,否则调度 SOME_FAILURE

您可以通过以下方式在您的 Reducer 中获取您正在寻找的结果响应:

action.payload

所以你将处理成功或失败的 Reducer 看起来有点像这样:

export default (state=initialState, action) => {

  switch(action.type) {

    case SOME_SUCCESS:
      let success_response = action.payload
      // some logic handling successful response
      // return modified state

    case SOME_FAILURE:
      let error_response = action.payload
      // some logic handling error message response
      // return modified state

    default:
      return state;
  }
}
于 2018-10-03T13:27:38.350 回答