【发布时间】:2021-10-12 18:34:57
【问题描述】:
我正在尝试使用钩子将clickFavIconArray 设置回一个空数组。
基本上,setClickFavIconArray 有一个 ID 列表,showFavIcon() 会检查该 ID,如果它包含相同的 ID,我想将其从数组中删除并将 setClickFavIconArray 更新为新数组。
但是,无论如何,它似乎只是添加到原来的clickFavIconArray 上。有没有办法将clickFavIconArray 状态清除回[] 空数组?
这里的一些帮助会很棒。
const [clickFavIconArray, setClickFavIconArray] = useState([]);
function showFavIcon(id){
if (clickFavIconArray.includes(id)) {
const newArray = clickFavIconArray.filter(item => !id.includes(item))
setClickFavIconArray(newArray)
}
setClickFavIconArray([...clickFavIconArray, id])
}
【问题讨论】:
-
你只是想说,
setClickFavIconArray([])? -
您正在过滤数组,更新状态,并且紧接着(两行下方)您再次将 id 附加到数组?也许我不明白这个问题,但是如果你在第一个 setClickFavIconArray(newArray) 之后添加一个 return 语句有帮助吗?
标签: javascript arrays reactjs react-hooks use-state