Вызов asyn c помощника создателя экшена с redux-thunk - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь вызвать вспомогательный метод для двух асин c создателей действий, но я не уверен, почему я не могу этого сделать. Функция, назначенная на signUpOrSignIn, должна вызываться как signUp, так и signIn. Они находятся в одном файле. Я думаю, что проблема связана с объявлением моей функции или обработкой async dispatch. Буду признателен за ваш отзыв. Спасибо!

import axios from "axios";
import * as types from "./types";

const signUpOrSignIn = (path, email, password, history) => async dispatch => {
  try {
    const res = await axios.post(path, { email, password });
    history.push("/dashboard");
    dispatch({ type: types.DID_SIGN_IN, payload: res });
  } catch (err) {
    dispatch({ type: types.DID_SIGN_IN, payload: err.response });
  }
};

export const signUp = (email, password, history) => async dispatch => {
  signUpOrSignIn("/users", email, password, history);
};

export const signIn = (email, password, history) => async dispatch => {
  signUpOrSignIn("/users/login", email, password, history);
};

1 Ответ

0 голосов
/ 06 апреля 2020

Поскольку signUp или signIn намереваются просто вернуть signUpOrSignIn.

Вы можете удалить async dispatch.

Примерно так:

export const signUp = (email, password, history) => signUpOrSignIn("/users", email, password, history);

export const signIn = (email, password, history) => signUpOrSignIn("/users/login", email, password, history);
...