我有一个IconsGrid
组件,其子类型为Icon
,这是一个示例:
<IconsGrid iconsWidth={96} iconsHeight={96}>
<Icon iconClass="fa fa-cog" onIconClick={...} />
<Icon iconClass="fa fa-settings onIconClick={...} />
<Icon iconClass="fa fa-twitter" onIconClick={...} />
</IconsGrid>
IconGrid
是100%的宽度和100%的高度,在它的渲染方法中,我正在使用Icon
克隆所有React.cloneElement
个孩子,因为我需要传递更多支持每个图标,如top
和left
,以便将图标放在网格上。
每个Icon
子项都是可拖动的,这意味着在拖动时,我需要更新自己的top
和left
属性,问题在于top
和{ {1}}道具都来自left
组件中克隆的Icon
。
那么如何从它的父组件更新克隆的子道具?
我尝试将一个函数传递给克隆图标作为道具,在拖动图标时,在鼠标移动事件中,我用图标组件调用此函数,它是新的顶部和左侧位置,但随后我无法致电IconsGrid
或icon.setProps