由于此渲染语句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将被解释器忽略;实际上,只会使用逗号分隔列表中的最后一个值。

09-25 16:56
查看更多