我尝试做一些过滤逻辑并让项目成员进入(根据 url 参数上的名称),但问题是它总是空的,如下所示(即使我更改,teamMembers 也总是空的过滤条件到明显的东西)。 我还尝试了其他方法而不是在 allUsers 数组上进行过滤,但它们在某种程度上很好。
function Team({ setShowAddMembers }: props) {
const params = useParams();
const { projectName } = params;
const [projectTeam, setProjectTeam] = useState<user[]>([]);
useEffect(() => {
try {
const getProjectTeam = async () => {
const allProjects: project[] = await getAllProjects();
console.log(allProjects); // works. Logs projects array
const allUsers: user[] = await getAllUsers();
console.log(allUsers); // works. Logs users array
// to get only the project of the page you're on
const currentProject: project[] = allProjects.filter(
(project) => project.name === projectName
);
console.log(currentProject); // works as intended. Logs a 1 item array
console.log(currentProject[0]); // works as intended
const { members } = currentProject[0];
console.log(members); //works. Logs array of the members of the current project
const teamMembers: user[] = allUsers.filter((user) =>
members.includes(user.username)
);
console.log(teamMembers); // DOES NOT WORK. LOGS EMPTY ARRAY
setProjectTeam(teamMembers);
};
getProjectTeam();
} catch (error) {
console.log(error);
}
}, []);