调用组件时ID查询异常:存在于Members数组却提示未找到
问题分析与解决方案
核心问题
你代码里的ID匹配逻辑写错了。从控制台输出的Erstes Mitglied ID: Mitglieder[0].member.id可以明确:Mitglieder数组的每个元素中,ID是嵌套在member子对象里的,但你当前用的是member.id === MyID,直接取了元素根层级的id(这个值大概率不存在或者和目标ID不匹配),所以才会一直提示未找到成员。
修正代码
把some方法里的匹配条件改成member.member.id === MyID即可,修正后的代码如下:
useEffect(() => { Api.getMe().then(response => { const MyID = response.data.id; // 修正:取嵌套在member对象里的id const memberExists = Mitglieder.some((member) => member.member.id === MyID); console.log('Eigene ID:', MyID); console.log('Mitglieder:', Mitglieder); console.log('Erstes Mitglied ID: ', Mitglieder[0].member.id); if (memberExists) { console.log(`Mitglied mit der ID ${MyID} existiert.`); } else { console.log(`Kein Mitglied mit der ID ${MyID} gefunden.`); } }).catch(error => { console.error('Fehler beim Abrufen der ID:', error); }); }, []);
额外提示
- 你在
then回调里写的return true/false没有实际作用,因为这是异步回调函数,返回值不会被外部捕获。如果需要根据匹配结果做后续操作,可以用React状态(比如useState)来存储memberExists的值。 - 确保
Mitglieder数组在useEffect执行时已经正确加载完成,如果Mitglieder是异步获取的,需要把它加入useEffect的依赖数组,否则会拿到初始的空数组或旧数据。
内容的提问来源于stack exchange,提问作者Dav13ide12
相关产品推荐
相关产品推荐

