在 tsx 中反应删除状态值 onClick

React in tsx delete state value onClick

我想过滤类别,如果我点击类别需要查看它们。如果我再次单击它们,我还需要删除它们。我将所有活动类别保存在一个状态中,并想在再次单击它们后删除它们,现在我的问题是如何以最聪明的方式做到这一点? 状态:

const [activeCategories, setActiveCategories] = useState<string[]>([]);

function handleClick(catId: string) {
    setActiveCategories([...activeCategories, catId]);
}

使用 ActiveCategories 无法获取活动 ID。

修改handleClick函数,判断catId是否存在。如果存在则删除它,如果它不存在则添加它状态:

function handleClick(catId: string) {
    if(activeCategories.findIndex(id => catId === id) >= 0){
        const updateState = activeCategories.filter(id => id !== catId)
        setActiveCategories(updateState);
    } else {
        setActiveCategories([...activeCategories, catId]);
    }
}