首页 > 解决方案 > 如何创建一个在到达终点时反转的暂停的循环 react-redux

问题描述

我目前正在尝试为幻想体育创建一个模拟草稿应用程序。一直试图弄清楚如何遍历所有团队,同时将一个对象推入每个团队数组,然后在轮到用户时暂停。在用户选择他的玩家(对象)后,循环继续直到它到达回合结束(teams.length),此时它应该反转并按降序继续,直到它再次到达用户,然后返回直到 index = 0。然后重复几次。

到目前为止我有什么:

//draftAction.js

export const addPlayerToTeam = (j) => (dispatch, getState) => {
  let myTeam = getState().draftPreferencesReducer.draftPos
  let player = getState().playersReducer.players
  let allTeams = getState().draftPreferencesReducer.teams
  if (j){ j = myTeam } 
  else {j = 0}
  for (let i = j, di=1; i < allTeams.length; i+= di) {
    if (i !== myTeam-1){
    setTimeout(function(x) { return function() {
      return dispatch ({
        type: ADD_TO_TEAM,
        player: player[x],
        team: x,
      })
      }; }(i), 1000*i);
    }
    else { return }
  }
}


export const addPlayerToMyTeam = (player, team) => (dispatch, getState) => {

  let myTeam = getState().draftPreferencesReducer.draftPos
  let allTeams = getState().draftPreferencesReducer.teams
  allTeams[myTeam-1].push(player)
  return dispatch ({
    type: ADD_TO_MY_TEAM,
    player,
    playersUsed: playersDrafted
  })
}

主要功能是 addPlayerToTeam。团队是一个多维数组,里面有几个空数组(用户输入他希望有多少个团队)。我们用户的团队被拼接并扔到了teams数组中。DraftPos(此处用作 myTeam)是放置用户团队的索引。本质上,我试图遍历 myTeams,然后在 index == draftPos 时暂停,然后继续直到我们到达 myTeams.length,然后返回到 draftPos,再次暂停,然后继续直到 index = 0。非常感谢任何帮助。

标签: javascriptreactjsredux

解决方案


推荐阅读