我有一个数组,在React中使用useState设置。我想给它添加一个元素,因为它还不包含元素。
语法应该没问题,但是React总是覆盖数组,所以数组总是只包含一个元素。有人知道为什么吗?
const isInArray = (arr: any, elCompare:any) => {
return arr.some((el:any) => {
return el.keyword_uid === elCompare.srcElement.__data__.data.uid
}) ? [...arr]
: [...arr, {keyword_uid: elCompare.srcElement.__data__.data.uid, keyword_name: elCompare.srcElement.__data__.data.name}]
}
const buttonClicked =(d:any) => {
setFilterArray(isInArray(dictFilterArray, d))
}
1条答案
按热度按时间ef1yzkbh1#
这是在React中设置状态的正常行为。传入setState函数的任何内容都将用作新状态。
如果你想添加到一个数组类型的状态,你必须复制当前状态,在其中推送一些新数据,然后将副本传递给setState函数。
试试这个: