首页 > 解决方案 > 如何在反应中为对象数组设置状态

问题描述

假设我有这样的状态

const [peoples, setPeople] = useState[
      {name: 'Sam', power: 0},
      {name: 'Tam', power: 0},
      {name: 'Lam', power: 0},
      {name: 'Bam', power: 0},
      {name: 'Jam', power: 0},
      {name: 'Yum', power: 0},
    ];

例如我想将 Bam 功率更新为 2,更新这种对象数组的正确方法是什么

标签: reactjs

解决方案


如何在反应中为以下对象数组设置状态

const [peoples, setPeople] = useState([
  {name: 'Sam', power: 0},
  {name: 'Tam', power: 0},
  {name: 'Lam', power: 0},
  {name: 'Bam', power: 0},
  {name: 'Jam', power: 0},
  {name: 'Yum', power: 0},
]); 

const powerUp = (name, power) => {
    setPeople(peoples.map(
        (people) => 
            people.name === name ? {...people, power: power} : people
    ));
};

推荐阅读