【发布时间】:2021-05-21 15:44:58
【问题描述】:
我正在使用 next.js 和 typescript 开发我的前端应用程序,并且我正在尝试过滤一个数组以便仅显示您正在寻找的用户,例如搜索栏,但是它总是返回我未定义。
让我给你看一点我的代码。
首先,我制作的函数filteredUsers
const [searchBar, setSearchBar] = useState<boolean>(false);
const [results, setResults] = useState<string>("");
// Searchbar users
if (typeof window !== "undefined") {
const userId: dataObject = JSON.parse(localStorage.getItem("Auth"));
var { data }: multipleUsers = useSWR(
"http://localhost:5000/api/user/allU/" + userId.user.id
);
}
const filteredUsers = useMemo(() => {
data !== undefined &&
data.filter(user => {
return user.name.toLowerCase().includes(results.toLowerCase());
});
}, [results]);
console.log(filteredUsers);
console.log(results);
现在,了解我期望的数据类型的接口
// User representation
type user = {
id?: string;
name?: string;
email?: string;
password?: string;
friends?: [];
banner?: string;
perfil?: string;
};
export interface IuserData {
data: user;
}
export type multipleUsers = { data: user[] };
现在,让我向您展示 console.log() 为我显示的内容
第一个值是我正在接收的数据。
第二个是我的函数的结果,它总是未定义
第三个是我输入的值
如何才能根据我的输入值获得我正在寻找的结果?
感谢您的宝贵时间!
【问题讨论】:
标签: reactjs typescript next.js