由于此渲染语句c is not defined
的第二部分(返回的逗号后),我的应用程序崩溃了。
我不仅要将此元素呈现为CategoryTreeFork
组件,还要将其子元素呈现为同一组件。
我在尝试访问该变量时犯了一个错误?
<div className="categories-narabikae">
<p>Displayed Categories </p>
{
filterActiveCategories(categories).map((c, idx) =>
<CategoryTreeFork
key={idx}
parentCat={null}
thisCat={c}
level={1}
dropEvent={this.handleDropEvent}
/>
,
c.children
? c.children.map( (c2, idx) =>
<CategoryTreeFork
key={idx}
parentCat={c}
thisCat={c2}
level={2}
dropEvent={this.handleDropEvent}
/>
)
: null
)
}
</div>
编辑:在页面的第一次渲染期间,我映射的数组看起来是空的(尚未从API检索类别)-这可能触发错误吗?
最佳答案
看起来在页面的第一次渲染期间,我正在映射的数组为空(尚未从API检索类别)-这可能触发错误吗?
您(不小心)使用了逗号运算符:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator
逗号运算符评估每个操作数(从左到右)并返回最后一个操作数的值。
因此,第一个CategoryTreeFork
将被解释器忽略;实际上,只会使用逗号分隔列表中的最后一个值。