更新对象反应钩子数组中的值

时间:2021-03-18 13:57:45

标签: javascript reactjs

我如何更新 ( +1 ) 每个玩家在 onClick 的得分。 我已经设置了代码,唯一剩下的就是为每个用户触发更新的功能。增量为 +1

  const [players, setPlayers] = useState([{
    name: "Guil",
    score: 1,
    id: 1
  },
  {
    name: "Treasure",
    score: 2,
    id: 2
  },
  {
    name: "Ashley",
    score: 3,
    id: 3
  },
  {
    name: "James",
    score: 4,
    id: 4
  }
])

const handleScoreChange = (index, delta) => { 
    setPlayers( player => {
        return{
            ...player,
            score: player[index].score += delta
        }
    })
}

   

1 个答案:

答案 0 :(得分:0)

你很近。尝试这样的事情:

const handleScoreChange = (index, delta) => { 
    
    const playersCopy = [...players];
    playersCopy[index].score += delta;
    setPlayers(playersCopy);
}