【问题标题】:How to get value based on key from an array of objects in React如何根据键从 React 中的对象数组中获取值
【发布时间】:2021-09-13 09:16:15
【问题描述】:

我有一个状态

    const [analysisData, setAnalysisData] = useState(false);

我在函数中设置此状态的数据,当我控制台 console.log(analysisData) 时,我得到的输出为

 {ID:1, ANALYSIS_NAME : "name1",
       custodians:"[{\"ID\": 1, \"NAME\": \"abc\"}, 
                    {\"ID\": 2, \"NAME\": \"xyz\"}, 
                    {\"ID\": 3, \"NAME\": \"pqr\"}]"
    
    };

当我尝试在 HTML 中显示如下时,出现错误

    const AnalysisList = () => {
    return(<div>
    <Panel>
    {JSON.parse(analysisData.custodians).map((childData) => {
        return (
            <div>
                {console.log(childData.NAME)}
            </div>
        )}
    )}
    

    <Panel>
    </div>)
    }

    export default AnalysisList

我试图在上述代码的 div 中显示"Name"

如何显示。请帮忙

【问题讨论】:

  • 什么是错误????
  • 您看到的错误是什么?此外,您的 AnalysisList 在其范围内的任何地方都没有 analysisData。您可以添加AnalysisList 组件的完整代码吗? .您最初将 analysisData 设置为 false ,但您在控制台日志中获得了一个对象。您的问题中有很多缺失的部分。而不是你的div中的console.log你只需要做&lt;div{childData.NAME}&lt;/div&gt;
  • @Sowam 我想在保管人中“命名”
  • @Shyam 我试过
    ,但我收到了未定义变量的错误
  • @Viet 我收到错误为未定义变量

标签: javascript arrays reactjs javascript-objects


【解决方案1】:

因为analysisData的初始值是假的。所以JSON.parse(analysisData.custodians) 是返回undefined 并且地图将不起作用。

您可以选择链接以检查返回:

{JSON.parse(analysisData.custodians)?.map((childData) => {
    return (
        <div>
            {console.log(childData.NAME)}
        </div>
    )}
)}

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签