我有一组带有类别的对象。除了可以手动定义的类别外,我还需要获取所有类别。我已经在自己的状态下设置了该类别。我希望排除notCat
。
所以要获得所有对象,我要这样做:
state = {
collapse: false,
active: false,
category: 'General Questions',
notCat: 'Deal FAQ',
};
const cats = [...new Set(Faqs.map(q => q.category))];
const catsR = cats.map((name, i) => {
return (
<li
key={i}
onClick={() => this.faqNavigation(name)}
className={
this.state.category === name ? 'active' : 'not-active'
}
>
{name}
</li>
);
});
然后我就是这样渲染它:
<ul className="toc">{catsR}</ul>
如何排除某个类别。在Category A
渲染中说{catsR}
?
答案 0 :(得分:3)
假设常见问题解答是一个数组,那么实际上不需要将其转换为集合,然后再转换为数组。 Array.map已经返回了一个新数组,因此您可以简单地执行以下操作:
const cats = Faqs.map(q => q.category);
作为对您的问题的回答,可以在映射之前使用Array.filter方法过滤掉某些类别:
const catsR = cats.filter(c => c !== 'notCat').map((name, i) => {
return (
<li
key={i}
onClick={() => this.faqNavigation(name)}
className={
this.state.category === name ? 'active' : 'not-active'
}
>
{name}
</li>
);
});