我使用React将对象数组存储在状态中。
我想通过从爱好中删除一个特定的元素来更新状态。 我尝试从状态中复制people数组,然后迭代每个人对象,然后通过每个爱好数组检查元素是否是我想要删除的元素,但我没有成功删除它,状态没有改变。 我尝试过的方法是先映射再过滤。
有什么最简单和最快的方法吗? 我刚开始学习React,所以我想用setTimeout做到这一点。
目前我只有代码可以从随机的人中选择随机的爱好。
this.state= {
people: [
{
name: 'Tom',
hobbies: ['dancing', 'swimming']
}, {
name: 'Dean',
hobbies: ['playing', 'wondering']
}, {
name: 'Jack',
hobbies: ['shooting', 'hiking']
}, {
name: 'Natalie',
hobbies: ['rock', 'cats']
}
]
};
我想通过从爱好中删除一个特定的元素来更新状态。 我尝试从状态中复制people数组,然后迭代每个人对象,然后通过每个爱好数组检查元素是否是我想要删除的元素,但我没有成功删除它,状态没有改变。 我尝试过的方法是先映射再过滤。
有什么最简单和最快的方法吗? 我刚开始学习React,所以我想用setTimeout做到这一点。
目前我只有代码可以从随机的人中选择随机的爱好。
setTimeout(() => {
const randInst = Math.floor(Math.random() * this.state.people.length);
const hobbyIndex = Math.floor(Math.random() * this.state.people[randInst].hobbies.length);
}, 500);