Gia*_*son 6 javascript reactjs
{normalizedData.map(obj =>
<div key={obj.display_date_numberic}>
<div>{obj.display_date_numberic}</div>
</div>
{!isEmpty(obj.applicants) && obj.map(obj2 =>
<div className="events">{obj2.person.name}</div>
)}
)}
Run Code Online (Sandbox Code Playgroud)
我在以下行出现错误:
{!isEmpty(obj.applicants) && obj.map(obj2 =>
Run Code Online (Sandbox Code Playgroud)
为什么我不能在另一个地图中使用地图功能?normalizedData有一个对象数组,每个对象obj都有另一个对象数组。
And*_*enz 10
You can do a map within a map as follows:
例如给定的数据
outerArray: [
{ id: '1st', innerArray: [ 'this', 'that' ]},
{ id: '2nd', innerArray: [ 'some', 'what' ]},
]
Run Code Online (Sandbox Code Playgroud)
你可以使用 JSX:
<ul>
{outerArray.map(outerElement => {
return outerElement.innerArray.map(innerElement => (
<li key={outerElement.id}>
{innerElement} - {outerElement.id}
</li>
))
})}
</ul>
Run Code Online (Sandbox Code Playgroud)
或者更简洁一点:
<ul>
{outerArray.map(outerElement => (
outerElement.innerArray.map(innerElement => (
<li key={outerElement.id}>
{innerElement} - {outerElement.id}
</li>
))
))}
</ul>
Run Code Online (Sandbox Code Playgroud)
呈现:
<ul>
<li>this - 1st</li>
<li>that - 1st</li>
<li>some - 2nd</li>
<li>what - 2nd</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
请注意在映射中使用 key= 以确保 React 对每个循环迭代中的元素都有唯一的引用。如果你不这样做,它会警告你!
原因是,您正在尝试render多个元素,而我们不能这样做,我们只能返回一个元素。因此,将所有逻辑和元素包装在一个中,div如下所示:
{normalizedData.map(obj =>
<div key={obj.display_date_numberic}>
<div>{obj.display_date_numberic}</div>
{Array.isArray(obj.applicants) && obj.applicants.map(obj2 =>
<div className="events">{obj2.person.name}</div>
)}
</div>
)}
Run Code Online (Sandbox Code Playgroud)
假设obj.applicants是一个array,使用Array.isArray检查任何值是否是正确的数组
注意:map我们只能在 on 上使用,array不能在 any 上使用object,所以如果 obj 是一个对象并使用它Object.keys(obj)来获取array所有键中的一个,那么就可以使用mapon 。
| 归档时间: |
|
| 查看次数: |
6720 次 |
| 最近记录: |