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},
];
例如我想将 Bam 功率更新为 2,更新这种对象数组的正确方法是什么
解决方案
如何在反应中为以下对象数组设置状态
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
));
};
推荐阅读
- javascript - 所有其他模块的类的一个实例
- java - Android - ViewPager 不显示片段
- ios - 用子视图隐藏彩色边框
- react-native - 如何从 React Native 中的音频块创建缓冲区?
- r - 从数据表 R 下载数据时更改文件名
- c# - 初始化 XAML 预览器时找不到 System.Runtime 程序集
- php - 我如何注释我的属性,它是值对象,以便 API 平台生成其字段用于招摇文档?
- google-analytics - ReferenceError:未定义数据层
- javascript - 仅使用javascript触发单击事件时如何在列表项上切换css类
- javascript - Safari 10 上的 Ionic 3 远程内容加载问题