问题描述
我正在处理react-leaflet自定义控件,并且我有一个需要其引用的组件。但是此组件具有动态呈现子级的功能。像这样:
<LayersControl ref={controlRef => this.controlRef = controlRef}>
{this.props.children}
</LayersControl>
孩子们也有自己的孩子。在渲染这些子级时,它们会影响基本的传单逻辑。
(对于不熟悉或好奇的人,LayersControl
将创建一个L.control.layers。LayersControl
的子代将始终是LayersControl.BaseLayer
或LayersConrol.Overlay
然后,这些子节点将具有子节点,这些子节点可以是任意数量的尚不知道的反应叶层或组件。随着.BaseLayer
或.Overlay
组件的安装,它们将修改基础的L.control.layers
对象。)
在所有后代都呈现后,我试图获取对组件的传单实例的引用。但是,如上所述调用ref
函数,不会发生这种情况。尽管我的引用确实在componentDidMount
中定义,但它并不完整。例如,我在cdm
中需要的一些关键属性尚不可用(即._container
属性)。
我知道他的引用是如何工作的-根元素渲染和安装后,即使子代和后代尚未安装,它们也会为您提供引用。
除了没有像做setTimeout
并在10ms
之后获得引用这样的技巧外,一旦所有后代都完成渲染,如何获得该元素的引用?
Working demo of the issue
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)