Javascript ReactJS:如何更新克隆的子道具?

Javascript ReactJS:如何更新克隆的子道具?,javascript,reactjs,Javascript,Reactjs,我有一个IconsGrid组件,其子组件类型为Icon,下面是一个示例: <IconsGrid iconsWidth={96} iconsHeight={96}> <Icon iconClass="fa fa-cog" onIconClick={...} /> <Icon iconClass="fa fa-settings onIconClick={...} /> <Icon iconClass="fa fa-twitter" o

我有一个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是sceen的100%宽度和100%高度,在它的渲染方法中,我正在使用React.cloneElement克隆所有图标子项,因为我需要向每个图标传递更多道具,如top和left,以便在网格上定位图标

每个子图标都是可拖动的,这意味着在拖动时,我需要更新它自己的顶部和左侧属性,问题是顶部和左侧的道具都来自IconsGrid组件中克隆的图标。 那么,如何从父组件更新克隆的子道具呢


我试着将一个函数作为道具传递给克隆图标,在拖动图标的同时,在鼠标移动事件中,我用图标组件调用这个函数,它是新的顶部和左侧位置,但是我不能调用icon.setProps或icon.replaceProps

您可以更新IconsGrid组件以接受图标字符串数组和图标组件类,然后在IconsGrid内部创建它们您是否将其他道具作为状态传递?也许这会有用。@CoryDanielson这是im构建的ui框架的一部分,我希望它对开发人员是透明的。我不太清楚为什么在拖动时需要将左上角作为道具进行更新。似乎只有在拖动完成后才需要执行此操作completed@CoryDanielson你完全正确,但当我放下图标时,我仍然需要更新顶部和左侧的道具,原因是我不希望在IConGrid状态更改时重置每个图标的顶部和左侧道具