【发布时间】:2021-10-12 14:28:27
【问题描述】:
我正在创建一个需要 2 个搜索栏的应用程序。一个按名称搜索,另一个按标签搜索。当用户将名称和标签都放在搜索栏中时,搜索也应该起作用。
来自api的数据格式
{
"students" : [
{
"city": "city",
"company" : "company",
"email" : "email",
"firstName" : "firstName",
"grades" : ["12", "54"],
"id" : "1",
"lastName" : "lastName",
"pic" : "url",
"skill" : "skill"
},
],
}
我的应用程序正在https://temp-application.netlify.app/ 上运行
目前,该应用程序确实使用名称进行搜索,因为它应该是。 但是,只要我附上按标签搜索的功能。一切都崩溃了。
这就是我实现名称和标签搜索的方式。
useEffect(() => {
let filteredResults = results.filter((result) => {
const name = result.firstName + " " + result.lastName;
const isName = name
.toLowerCase()
.includes(searchName.toLowerCase());
const tags =
result.tag !== undefined ? result.tag.toString() : false;
const isTag =
typeof tags === "string"
? tags.toLowerCase().includes(searchTag.toLowerCase())
: false;
return isName && isTag;
});
setStudents(filteredResults);
}, [searchName, searchTag]);
请注意,API 返回的对象中不存在 'tag' 数组
【问题讨论】: