Я пытаюсь обновить свойство roll
в объекте, вложенном в массив players
. Мое состояние выглядит так:
players: [
{
"id": "44ufazeep0o",
"name": "test-player-1",
"roll": 0,
"totalWins": 0
},
{
"id": "eu8hutex7z9",
"name": "test-player-2",
"roll": 0,
"totalWins": 0
}
]
Это мой action
:
export const addRoll = (roll, id) => {
return {
type: ADD_ROLL,
roll,
id,
}
}
Это мой reducer
:
case ADD_ROLL:
return state.players.map((player) => {
if (player.id === action.id) {
return {
...player,
roll: action.roll,
}
}
return player;
});
...
Я смотрю state.players
в таких компонентах:
import { connect } from 'pwa-helpers'; // connects a Custom Element base class to the Redux store
...
stateChanged(state) {
this.players = state.players;
}
render() {
return html`${this.players.map((player)=> html`<h1>${player.name}</h1>`)}`
}
Теперь, когда я вызываю store.dispatch(addRoll(this.roll, this.id))
, this.players.map()
возвращает undefined
в компоненте, где я наблюдаю state.players
. Мы очень ценим любую информацию о том, почему это могло произойти!