Запустите функцию перед действием отправки в mapDispatchToProps в избыточном - PullRequest
0 голосов
/ 01 мая 2020

Я - мой контейнер. Я хотел бы выполнить обработку перед отправкой Действия

Итак, сначала я объявил функцию

const resumeCallReq = async (call) => {
    const body = { id: call.callId }
    const resCallRes = await resumeCall('queueBaseUrl', body);
    return dispatch(resume(call))
}

Затем вызову ее в mapDispatchToProps

const mapDispatchToProps = (dispatch) => ({
    pauseCall: (call) => pauseCallReq(call),
    resumeCall: (call) => resumeCallReq(call),
    endCall: (call) => dispatch(end(call)),
    addNote: (call) => dispatch(addNote(call))
})

Я получаю ошибку

'dispatch' is not defined 

Ответы [ 2 ]

2 голосов
/ 01 мая 2020

dispatch не определено в пределах resumeCallReq.

Существует множество способов получить dispatch в область, одним из них является функция карри:

const resumeCallReq = (dispatch) => async (call) => {
  const body = { id: call.callId };
  const resCallRes = await resumeCall("queueBaseUrl", body);
  return dispatch(resume(call));
};

const mapDispatchToProps = (dispatch) => ({
  resumeCall: (call) => resumeCallReq(dispatch)(call),
});

Или Вы можете просто определить функцию в mapDispatchToProps:

const mapDispatchToProps = (dispatch) => {
  const resumeCallReq = async (call) => {
    const body = { id: call.callId };
    const resCallRes = await resumeCall("queueBaseUrl", body);
    return dispatch(resume(call));
  };

  return {
    pauseCall: (call) => pauseCallReq(call),
    resumeCall: (call) => resumeCallReq(call),
    endCall: (call) => dispatch(end(call)),
    addNote: (call) => dispatch(addNote(call)),
  };
};
0 голосов
/ 01 мая 2020

Вы можете передать dispatch в качестве аргумента resumeCallReq

const resumeCallReq = async (call, dispatch) => {
    const body = { id: call.callId }
    const resCallRes = await resumeCall('queueBaseUrl', body);
    return dispatch(resume(call))
}

и в mapDispatchToProps

const mapDispatchToProps = (dispatch) => ({
    pauseCall: (call) => pauseCallReq(call),
    resumeCall: (call) => resumeCallReq(call, dispatch),
    endCall: (call) => dispatch(end(call)),
    addNote: (call) => dispatch(addNote(call))
})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...