首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >React从一个动作创建多个请求

React从一个动作创建多个请求
EN

Stack Overflow用户
提问于 2020-04-19 15:33:13
回答 1查看 48关注 0票数 0

我有这样的场景,用户在下拉列表中选择一个团队,这会向端点发送一个请求。

代码语言:javascript
代码运行次数:0
运行
复制
  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的末尾添加一个date参数,如下所示:

https://www.api-football.com/demo/api/v2/statistics/524/40中,请求必须自动发送到以下三个端点

  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个urls创建一个数组?

这就是我的getStats应该做的

代码语言:javascript
代码运行次数:0
运行
复制
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 => { ......
EN

回答 1

Stack Overflow用户

发布于 2020-04-20 13:26:09

代码语言:javascript
代码运行次数:0
运行
复制
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 => {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61306995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档