React Ax ios создать несколько запросов от одного действия - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть этот сценарий, пользователь выбирает команду в раскрывающемся списке, это отправляет запрос к конечной точке

  const selectHomeTeamStat = evt => {
    const { value } = evt.target;
    getStats(leagueId, value, 'home');
  }; 

Представьте, что запрос отправляется на => https://www.api-football.com/demo/api/v2/statistics/524/40

Я хочу иметь возможность в моем action.js создать множественный запрос, просто добавив параметр даты в конце этого url, что-то вроде:

С https://www.api-football.com/demo/api/v2/statistics/524/40 запрос должен быть автоматически отправлен к этим 3 конечным точкам

  1. https://www.api-football.com/demo/api/v2/statistics/524/40/2019-08-30,
  2. https://www.api-football.com/demo/api/v2/statistics/524/40/2019-09-30
  3. https://www.api-football.com/demo/api/v2/statistics/524/40/2019-10-30

Мой вопрос, как я могу отправить эти несколько запросов в мой action.js? Как я могу создать массив с этими 3 URL-адресами из действия пользователя, когда он выбирает команду в моем раскрывающемся списке?

Вот как мои getStats должны делать

export function getStats(league, team, type) {
  return function(dispatch) {

    let URLs= ["https://www.api-football.com/demo/api/v2/statistics/524/40/2019-08-30",
              "https://www.api-football.com/demo/api/v2/statistics/524/40/2019-09-30",
              "https://www.api-football.com/demo/api/v2/statistics/524/40/2019-10-30"]

    const getAllData = (URLs) => {
      return Promise.all(URLs.map(fetchData));
    }

    const fetchData = (URL) => {
      return axios
        .get(URL)
        .then(res => { ......

1 Ответ

0 голосов
/ 20 апреля 2020
const url = "https://www.api-football.com/demo/api/v2/statistics";
let dates = ["2019-08-30", "2019-09-30", "2019-10-30"]

const getAllData = (dates, i) => {
  return Promise.all(dates.map(x => url + '/' + league + '/' + team + '/' + x).map(fetchData));
}

const fetchData = (URL) => {
  return axios
    .get(URL)
    .then(res => {
...