React.cloneElement:将元素与其克隆区分开来

问题描述

之后

const element = <MyComp />
const cloned = React.cloneElement(element,someProps)

元素和它的克隆都被渲染。 (原始元素被渲染成一个门户。)

现在我需要将引用附加到 cloned 而不是 element

我相信我可以通过设置自定义 DOM 道具来实现这一点,例如:

const cloned = React.cloneElement(element,{ ...someProps,'data-cloned': true })

并在 MyComp 上的回调引用中发现道具:

const element = <MyComp ref={el => if (el.dataset.cloned) { myRef.current = el }}

但感觉我可能错过了比设置和读取数据属性更好的方法

(更新:它似乎不起作用,因为使用这种机制我永远不知道哪个实例应该将 ref 重置为 null)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)