Neu in React.js, ich habe es schwer, den Spread-Operator in meinen Reduzierungen zu verwenden, um meinen Status mit einer 2D-Array-Eigenschaft zu aktualisieren.Redux: Verwenden von Spread Operator auf 2D-Array
Zum Beispiel Anfangszustand ist so:
let initialState = {
grid: new Array(5).fill(new Array(5).fill(0)),
player: { coords: [2,3], health: 100 }
}
Nach der Aktion Bindung, kann sagen, die Nutzlast zu PRESS_LEFT dem Spieler Zustand,
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 }
}
}
}
ich in der Lage bin geht zu aktualisieren, aber nicht das Gitter. Im Grunde möchte ich die Koordinaten von oldCoords
und weisen sie aktualisieren 1.
Sorry, habe ich vergessen, meinen Beitrag bearbeiten, wo players.coords bereits initialisiert, wenn die Aktion ausgelöst wird. – Alejandro