Nouveauté de React.js, j'ai du mal à utiliser l'opérateur spread dans mes réducteurs pour mettre à jour mon état qui a une propriété de tableau 2D.Redux: Utilisation de Spread Operator sur un tableau 2D
Par exemple état initial est ainsi:
let initialState = {
grid: new Array(5).fill(new Array(5).fill(0)),
player: { coords: [2,3], health: 100 }
}
Après la liaison de l'action, permet de dire que la charge utile va PRESS_LEFT
case PRESS_LEFT: {
let oldCoords = [state.player.coords[0], state.player.coords[1]];
let newCoords = [state.player.coords[0], state.player.coords[1]-1];
let thereIsWall = validateWall(state.grid, newCoords);
if (thereIsWall){
return state
} else{
return{
...state,
player: { ...state.player, coords: newCoords },
grid: { ...state.grid, state.grid[oldCoords[0]][oldCoords[1]] = 1 }
}
}
}
Je suis en mesure de mettre à jour l'état du joueur, mais pas la grille. Essentiellement, je veux mettre à jour les coordonnées de oldCoords
et l'affecter à 1.
Désolé, j'oublié modifier mon poste où players.coords est déjà initialisé lorsque l'action est envoyée. – Alejandro