【发布时间】:2019-07-22 03:50:24
【问题描述】:
我对 List 中的 React.cloneElement 有疑问。如果列表中有很多元素,我们是否应该避免这样做? React.cloneElement 是否会进行可以避免的不必要的重新渲染?
我的组件:
...
render() {
const { items, classes, children } = this.props;
const { expanded } = this.state;
return (
<List className={classes.cssRoot}>
<Scrollbars
style={classes.cssScrollBar}
renderThumbVertical={this.renderThumb}
>
{items.map((item, index) => {
return (
<ListItem key={item.id} className={classes.cssListItemRoot}>
{React.Children.map(children, child =>
React.cloneElement(child, {
id: item.id,
name: `Item nummber ${index}`,
handleChange: this.handleChange,
isExpanded: expanded === item.id
})
)}
</ListItem>
);
})}
</Scrollbars>
</List>
);
}
...
【问题讨论】:
标签: javascript reactjs performance material-ui