开发者问题收集

类型错误:尝试访问对象数据数组时无法读取未定义的属性(读取“0”)

2021-12-25
1599

当我尝试访问从数据库中提取的数据(receivedData 是一个对象)时,我收到 TypeError:无法读取未定义的属性(读取“0”) 。我已尝试 console.log 我的 receivedData ,它确实有数据。以下是我的 social 结构 ,它是我的 receivedData 对象 的键之一。

const logoObj = {
    "telegram": telegramWIcon,
    "twitter": twitterWIcon,
    "website": linkWIcon,
    "whitepaper": fileWIcon
  }

{receivedData.social[0] !== null &&
   <div>
       { Object.entries(receivedData.social[0]).forEach((item) =>
           item[1] !== null ? <SocialMedia url={logoObj.item[0]} link={item[1]} /> : ""
       )}
   </div>
}
2个回答
const logoObj = {
  telegram: telegramWIcon,
  twitter: twitterWIcon,
  website: linkWIcon,
  whitepaper: fileWIcon,
};

{receivedData.social[0] !== null && (
  <div>
    {Object.entries(receivedData.social[0]).map(([type, link]) => {
      if (!link || !logoObj[type]) {
        returt null;
      }

      return <SocialMedia key={link} link={link} url={type} />;
    })}
  </div>
)}
Alexandr
2021-12-25

logoObj 中没有 item 字段。您需要使用 logoObj[item] 动态访问密钥。

const logoObj = {
    "telegram": telegramWIcon,
    "twitter": twitterWIcon,
    "website": linkWIcon,
    "whitepaper": fileWIcon
  }

{receivedData.social[0] !== null &&
   <div>
       { Object.entries(receivedData.social[0]).forEach((item) =>
           item[1] !== null ? <SocialMedia url={logoObj[item][0]} link={item[1]} /> : ""
       )}
   </div>
}
DoneDeal0
2021-12-25