【发布时间】:2018-07-01 04:53:44
【问题描述】:
我有一个组件,它的渲染取决于我传递给它的道具。以前我使用逻辑运算符 OR,但是当更多的 props 看起来很难看时,我使用 Array.prototype.some 方法将所有这些转换为数组。你知道如何做得更好或一些最佳实践吗?
之前:
<Wrapper>
{(props1 || props2 || props3 || props4) && <Component/>}
</Wrapper>
之后:
<Wrapper>
{[props1, props2, props3, props4].some(x => x) && <Component/>}
</Wrapper>
【问题讨论】:
-
我能想到的唯一真正微小的修改是
.some(Boolean),但这不是改进。然而,信息很少。你为什么要为此提供 4 个道具? -
后者可能看起来更好,但前者性能更高,因为您不需要在每个渲染上创建一个数组然后迭代该数组。我建议使用第一种方法。
-
@OriDrori 如果这些道具中的任何一个将被传递,我将渲染组件,如果没有这些我不会
-
@PalaniichukDmytro - 我知道最终结果是什么 :) 为什么你需要首先传递 4 个道具?这个道具到底是什么?
-
@OriDrori 我明白了,实际上它有两个 bool 道具和两个功能,取决于它我在组件内部显示了一些按钮
标签: javascript arrays reactjs ecmascript-6