J'ai une fonction currentPlayer
comme suit:localement variable scope n'est pas définie en fonction
function currentPlayer(players) {
return players.findIndex(player => player.current) || 0;
}
Je suis en train d'utiliser cette fonction dans un réducteur comme suit:
export function players(players = [], action) {
players = players.slice();
switch (action.type) {
...
case DELETE_PLAYER:
const currentPlayer = currentPlayer(players);
if (currentPlayer === action.index) {
players = switchNextPlayer(players, currentPlayer);
}
players.splice(action.index, 1);
}
return players;
}
En exécution de ce code , je reçois l'erreur suivante:
ReferenceError: currentPlayer is not defined
le code fonctionne si je change le nom de la variable comme suit:
const currentPlayerIndex = currentPlayer(players);
Je pensais que la currentPlayer
variable serait SCOPED dans la fonction réducteur. Qu'est-ce qui se passe ici?
'const currentPlayer = currentPlayer (players);' noter 3 noms dans la ligne – Ryan
La fonction est en train d'être éclipsée par la nouvelle liaison 'currentPlayer' qui n'a pas été initialisée au moment où vous l'évaluez, donc vous vous retrouvez avec un erreur de référence – MinusFour