Jede Aufgabe hat einen Status (wahr/falsch) und eine Priorität (niedrig/mittel/hoch).
Ich habe zwei Filterschaltflächen – eine für den Status und eine für die Priorität – und ich verwende die folgenden Handler, um die angezeigte Liste (taskArray) basierend auf der Auswahl des Benutzers zu aktualisieren.
Hier ist meine Arbeitsweise Code:
Code: Select all
const handleStatus = (e: React.MouseEvent) => {
const label = e.currentTarget.innerText;
setStatusLabel(label);
setStatusActive(e.currentTarget.id);
const priorityArray =
priorityLabel === "All"
? allTasks
: allTasks.filter((x) => x.priority === priorityLabel);
if (label === "All") {
setTaskArray(priorityArray);
} else if (label === "Active") {
setTaskArray(priorityArray.filter((x) => !x.status));
} else if (label === "Complete") {
setTaskArray(priorityArray.filter((x) => x.status));
}
};
const handlePriority = (e: React.MouseEvent) => {
const label = e.currentTarget.innerText;
setPriorityLabel(label);
setPriorityActive(e.currentTarget.id);
const statusArray =
statusLabel === "All"
? allTasks
: statusLabel === "Active"
? allTasks.filter((x) => !x.status)
: allTasks.filter((x) => x.status);
setTaskArray(
label === "All"
? statusArray
: statusArray.filter((x) => x.priority === label)
);
};
Frage:
Wie kann ich diesen Code vereinfachen oder umgestalten, um beide Filter effizienter zu handhaben (und gleichzeitig die Lesbarkeit beizubehalten)?
Mobile version