我有一个React函数,我想在其中向JavaScript数组添加对象。到目前为止,我有这个
selectAnimalHandler = (animal) =>{
console.log(animal.id)
if(this.state.animals.find(ani => ani !== animal )){
this.setState(prevState =>(
{selectedAnimals: [...prevState.selectedAnimals, animal]}))
}
}
逻辑是检查某个元素是否已存在于数组中,如果不存在,则将其添加到数组中。 我尝试创建一个条件,而不是元素是否存在于数组中。 如果它不存在,什么也不会发生
答案 0 :(得分:2)
即使this.state.animals.find(ani => ani !== animal )
在数组中,此语句animal
也会返回一个值。
您应该使用类似!this.state.animals.find(ani => ani === animal )
此外,请记住,如果将两个引用与同一事物进行比较,则===
甚至是对象上使用的==
仅为true
。