【发布时间】:2023-01-30 18:37:39
【问题描述】:
我有一个处理列表的组件,并且有一些内部逻辑来确定它应该呈现为 ul 还是 div。如果列表为空,则呈现为 div,如果列表有元素,则呈现为 ul。
我正在进行 API 调用以获取潜在的元素列表。当我循环时,
<ParentUlOrDiv>
{data.map(el => {
<div>test</div>
})}
<div>final row</div>
</ParentUlOrDiv>
父级不知道它必须呈现的元素数量,因此它将它们全部插入一个li,这意味着我会得到各种视觉错误行为。
我怎样才能从 data 返回完整的映射列表并将其作为子项传递给 ParentUlOrDiv(因为它知道需要呈现的元素数量)?
如果我只是硬编码两个 divs 而不是地图,我就会正确渲染。但是有了地图,我就遇到了问题。
【问题讨论】:
-
您可以从更深的部分数出孩子的数量,对吗?不确定你问什么
-
如何仅在地图中完成数组时才渲染!
-
您目前在
map()回调中没有返回值。将el => { <div>test</div> }更改为el => (<div>test</test>)以获得隐式返回(注意大括号更改),或在<div>test</div>之前添加显式return。见:Arrow function expressions: Function body - MDN
标签: javascript reactjs