在 reactJs 中使用 map 显示对象数组

Posted

技术标签:

【中文标题】在 reactJs 中使用 map 显示对象数组【英文标题】:Displaying array of objects using map in reactJs 【发布时间】:2019-01-22 04:35:37 【问题描述】:

我有 10 个这样的对象数组:

我尝试映射ingedients 并显示文本:

    <ul>
        this.props.data.ingredients.map(function(ingredient,i)  
        return (<li key=i item=ingredient/>)
        )
   </ul>

我得到十个项目符号的结果,但没有显示文本。如果我尝试 ingredients.text ,它会说无法显示 null 文本。

提前致谢。

【问题讨论】:

【参考方案1】:

你在这里用成分设置物品道具。

return (<li key=i item=ingredient/>)

您可能希望在li 中显示文本,如下所示:

<ul>
    this.props.data.ingredients.map(function(ingredient,i)  
        return (<li key=i item=ingredient>ingredient.text</li>
    )
</ul>

【讨论】:

谢谢。试了一下,我得到一个错误 TypeError: Cannot read property 'text' of null.The value is a String 我做了一个代码沙箱,它可以工作。看看codesandbox.io/s/j7w9mrokyw 谢谢,效果很好。这是我最后犯的一个简单的错误。【参考方案2】:

你也可以用 ES6 的方式做同样的事情

let ingredientsText = [];

this.props.data.ingredients.map((ingredient,i) =>  
   ingredientsText.push(<li key=i item=ingredient>ingredient.text</li>);
)

<ul>
    ingredientsText
</ul>

【讨论】:

以上是关于在 reactJs 中使用 map 显示对象数组的主要内容,如果未能解决你的问题,请参考以下文章

在 Javascript/Reactjs 中使用 Fetch API 和 map() 显示 JSON 数据

ReactJS 根据数组的值渲染 OBJ.map

reactjs中如何使用按钮保存对象

ReactJS如何更新数组中对象的状态

reactjs中如何使用map函数和渲染列表

需要在通过map函数reactjs编写的元素数组中触发单个元素