javascript - useEffect 挂钩上的多个过滤器
问题描述
useEffect(() => {
if (status || group) {
setFilteredProjects(
projects.filter((project) => {
if (group !== "" && status !== "") {
return (
project.status === status && project.workgroup.name === group
);
} else {
return (
project.status === status || project.workgroup.name === group
);
}
})
);
} else {
setFilteredProjects(projects);
}
}, [status, group, projects]);
这段代码目前正在运行,但我觉得有一种更优雅的编写方式。
解决方案
你可以做这样的事情
const filteredProjects = projects.filter((project) => {
return group !== "" && status !== ""
? project.status === status && project.workgroup.name === group
: project.status === status || project.workgroup.name === group;
});
setFilteredProjects(filteredProjects);
推荐阅读
- angular - 未定义的属性
- sql - postgresql 的“JOIN”处或附近的语法错误
- javascript - 在某个字符后将数组中的每个元素拆分为对象
- python - 如何连接 Numpy 的 ndarray 来存储对象?
- javascript - iOS13 getUserMedia 不适用于 chrome 和 edge
- c - 谁能告诉我为什么我得到一个分段错误(cs50替换)
- amazon-web-services - 如何实现 aws chime 实时与会者状态?
- python - C#程序无法识别python脚本中的配置文件
- java - 尝试使用 SpringUtilities 类制作CompactGrid 时,java swing 中的“没有这样的孩子”意味着什么
- regex - 正则表达式中的 `(\S.*\S)` 和 `^\s*(.*)\s*$` 有什么区别?