【发布时间】:2017-01-12 11:56:08
【问题描述】:
我想使用扩展运算符。场景是没有玩家(在 UI 上显示为玩家图块)。每当我单击任何播放器图块时,它都会变得活跃(突出显示)。条件是一次只能突出显示一名玩家。因此,当玩家点击它的属性ifActive: true,其余玩家属性ifActive: false
playerReducer 被点击的玩家 ID 为 action.payload(action.payload 给出当前点击的玩家 ID)。现在我必须修改我的state 而不改变它。我必须为此使用扩展运算符。如何使用扩展运算符修改索引处的特定对象?
const initialPlayerState = {
tabs: [
{ id: 1, name: 'player 1', ifActive: false },
{ id: 2, name: 'player 2', ifActive: false },
{ id: 3, name: 'player 3', ifActive: false },
]
}
const playerReducer = (state = initialPlayerState , action) => {
switch (action.type) {
case SELECT_PLAYER:
//how to modify state using spread operator, and how to modify
//a specific object at a specific index.
return { ...state, /*some code hrere*/};
default:
return state;
}
}
如何使用扩展运算符修改索引处的特定对象?严格来说,我必须使用扩展运算符,每个玩家都应该有
ifActive属性。
【问题讨论】:
标签: javascript reactjs redux react-redux spread-syntax