我正在渲染我的组件:
<PanelGroup>
{this.renderPanel1()}
{this.renderPanel2()}
{this.renderPanel3()}
</PanelGroup>
现在我的一个面板只有在其可用属性设置为 时才可用true
。render() 方法否则返回 null。
我<PanelGroup>
应该在除最后一个元素之外的所有元素的底部添加一个分隔符。
我试图用下面的代码来完成,但因为即使panel2
返回空值,分隔符仍被添加,代码将无法工作。
如何过滤掉所有返回 null 的面板?:)
<div>
{React.Children.map(
React.Children.toArray(props.children),
(child: React.ReactElement<PanelProps>, i) => {
return (
<div>
{React.cloneElement(child as React.ReactElement<PanelProps>, child.props)}
{/*Add divider after all elements except last*/}
{i < React.Children.count(props.children) -1 && <Divider/>}
</div>
)
}
)}
</div>