Ich versuche, die Filterung innerhalb von React für ein Array von JSON zu aktivieren. Ich sortiere alphabetisch, dann muss ich nach Kategorie-Schlüssel filtern, wenn das Auswahl-Dropdown in diese Kategorie geändert wird (dies wird über das Filterargument des onChange-Ereignisses weitergegeben).Filtern Sie ein Array nur in JavaScript, wenn eine bestimmte Auswahloption ausgewählt ist.
Dann mappe ich über das gefilterte Array und gebe das entsprechende HTML aus.
Mein Problem ist, wie überspringe ich im Wesentlichen den Filter, wenn die 'Alle' Option in der Auswahl Dropdown ausgewählt ist? Derzeit, wenn dies ausgewählt ist, werden keine Elemente an die Map übergeben und nichts wird gerendert.
Thanks :)
renderProduce(orderBy, filter) {
return this.fetchProduce()
.sort(function(a,b) {
return (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0);
})
.filter(function(item) {
if (filter != 'All') {
return item.category == filter;
}
})
.map((item, i) => (
<Item key={i} item={item} />
));
}
Ich weiß, das ist ein frühes Stadium in unserer Beziehung - wir gerade erst kennengelernt - aber Ich liebe dich. –
Einige tun es für den rep, ich mache es für die Liebe. ;) –
aber das ruft die Filter-Funktion auf jeden Punkt der Liste auf, anstatt einfach nicht zu filtern. – Thomas